summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2012-01-04 19:29:11 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2012-01-04 19:29:11 +0000
commitaac3e06bf73214a1f44dd40e98c9930b759ded38 (patch)
tree9230308debf3b9bda2a064c735dd1447734d366f
parenta4c6ad191417112dae453d3b9313aff6c5bb18f7 (diff)
downloadbcm5719-llvm-aac3e06bf73214a1f44dd40e98c9930b759ded38.tar.gz
bcm5719-llvm-aac3e06bf73214a1f44dd40e98c9930b759ded38.zip
Enable -soft-float for MIPS.
llvm-svn: 147541
-rw-r--r--llvm/lib/Target/Mips/MipsISelLowering.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp
index 0c4cee5b997..bb19f6b27ac 100644
--- a/llvm/lib/Target/Mips/MipsISelLowering.cpp
+++ b/llvm/lib/Target/Mips/MipsISelLowering.cpp
@@ -92,17 +92,20 @@ MipsTargetLowering(MipsTargetMachine &TM)
// Set up the register classes
addRegisterClass(MVT::i32, Mips::CPURegsRegisterClass);
- addRegisterClass(MVT::f32, Mips::FGR32RegisterClass);
if (HasMips64)
addRegisterClass(MVT::i64, Mips::CPU64RegsRegisterClass);
- // When dealing with single precision only, use libcalls
- if (!Subtarget->isSingleFloat()) {
- if (HasMips64)
- addRegisterClass(MVT::f64, Mips::FGR64RegisterClass);
- else
- addRegisterClass(MVT::f64, Mips::AFGR64RegisterClass);
+ if (!TM.Options.UseSoftFloat) {
+ addRegisterClass(MVT::f32, Mips::FGR32RegisterClass);
+
+ // When dealing with single precision only, use libcalls
+ if (!Subtarget->isSingleFloat()) {
+ if (HasMips64)
+ addRegisterClass(MVT::f64, Mips::FGR64RegisterClass);
+ else
+ addRegisterClass(MVT::f64, Mips::AFGR64RegisterClass);
+ }
}
// Load extented operations for i1 types must be promoted
OpenPOWER on IntegriCloud