summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMMCInstLower.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-09-15 18:47:08 +0000
committerJim Grosbach <grosbach@apple.com>2010-09-15 18:47:08 +0000
commit26edbcb8d5da5fb65816a97f740c9868fa798df4 (patch)
tree7f20db4d589e18fa0bc2e062e75458d82ea173e3 /lib/Target/ARM/ARMMCInstLower.cpp
parent27ede1ba6daa893557db477fe3252084fd9f6147 (diff)
downloadllvm-26edbcb8d5da5fb65816a97f740c9868fa798df4.tar.gz
llvm-26edbcb8d5da5fb65816a97f740c9868fa798df4.tar.bz2
llvm-26edbcb8d5da5fb65816a97f740c9868fa798df4.tar.xz
Add support for floating point immediates to MC instruction printing. ARM
VFP instructions use it for loading some constants, so implement that handling. Not thrilled with adding a member to MCOperand, but not sure there's much of a better option that's not pretty fragile (like putting a double in the union instead and just assuming that's good enough). Suggestions welcome... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113996 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMMCInstLower.cpp')
-rw-r--r--lib/Target/ARM/ARMMCInstLower.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMMCInstLower.cpp b/lib/Target/ARM/ARMMCInstLower.cpp
index 41af0889d7..b26d327e36 100644
--- a/lib/Target/ARM/ARMMCInstLower.cpp
+++ b/lib/Target/ARM/ARMMCInstLower.cpp
@@ -16,6 +16,7 @@
#include "ARMMCInstLower.h"
//#include "llvm/CodeGen/MachineModuleInfoImpls.h"
#include "llvm/CodeGen/AsmPrinter.h"
+#include "llvm/Constants.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
@@ -155,6 +156,9 @@ void ARMMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
MCOp = LowerSymbolOperand(MO, Printer.GetBlockAddressSymbol(
MO.getBlockAddress()));
break;
+ case MachineOperand::MO_FPImmediate:
+ MCOp = MCOperand::CreateFPImm(MO.getFPImm()->getValueAPF());
+ break;
}
OutMI.addOperand(MCOp);