summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMMCInstLower.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-09-16 17:37:30 +0000
committerJim Grosbach <grosbach@apple.com>2010-09-16 17:37:30 +0000
commitee1934a2da25d427a5c5e5b8937ae002b8546235 (patch)
tree5cd15188c4c5fb9869e6495538e8865fc16351f9 /llvm/lib/Target/ARM/ARMMCInstLower.cpp
parent9b1e320c27207597501038c1af36547d5ac7069c (diff)
downloadbcm5719-llvm-ee1934a2da25d427a5c5e5b8937ae002b8546235.tar.gz
bcm5719-llvm-ee1934a2da25d427a5c5e5b8937ae002b8546235.zip
Make sure to promote single precision floats to double before extracting them
from the APFloat. llvm-svn: 114096
Diffstat (limited to 'llvm/lib/Target/ARM/ARMMCInstLower.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMMCInstLower.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMMCInstLower.cpp b/llvm/lib/Target/ARM/ARMMCInstLower.cpp
index 8774010d89d..404a73b95c7 100644
--- a/llvm/lib/Target/ARM/ARMMCInstLower.cpp
+++ b/llvm/lib/Target/ARM/ARMMCInstLower.cpp
@@ -157,8 +157,10 @@ void ARMMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
MO.getBlockAddress()));
break;
case MachineOperand::MO_FPImmediate:
- MCOp =
- MCOperand::CreateFPImm(MO.getFPImm()->getValueAPF().convertToDouble());
+ APFloat Val = MO.getFPImm()->getValueAPF();
+ bool ignored;
+ Val.convert(APFloat::IEEEdouble, APFloat::rmTowardZero, &ignored);
+ MCOp = MCOperand::CreateFPImm(Val.convertToDouble());
break;
}
OpenPOWER on IntegriCloud