aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2009-10-13 20:50:28 +0000
committerBob Wilson <bob.wilson@apple.com>2009-10-13 20:50:28 +0000
commit765cc0b9d59bf63dfcb02e3d126ea1c63e16f86f (patch)
treeb286d2e76338a4b6ad5048d1e89ec01b9eea173e /lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
parent4360298d2bf3c1ba8595a415cfa235df0bc76335 (diff)
downloadexternal_llvm-765cc0b9d59bf63dfcb02e3d126ea1c63e16f86f.zip
external_llvm-765cc0b9d59bf63dfcb02e3d126ea1c63e16f86f.tar.gz
external_llvm-765cc0b9d59bf63dfcb02e3d126ea1c63e16f86f.tar.bz2
Revise ARM inline assembly memory operands to require the memory address to
be in a register. The previous use of ARM address mode 2 was completely arbitrary and inappropriate for Thumb. Radar 7137468. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84022 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp')
-rw-r--r--lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
index 1679e12..546731b 100644
--- a/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
+++ b/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
@@ -1017,7 +1017,10 @@ bool ARMAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
const char *ExtraCode) {
if (ExtraCode && ExtraCode[0])
return true; // Unknown modifier.
- printAddrMode2Operand(MI, OpNum);
+
+ const MachineOperand &MO = MI->getOperand(OpNum);
+ assert(MO.isReg() && "unexpected inline asm memory operand");
+ O << "[" << getRegisterName(MO.getReg()) << "]";
return false;
}