summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2009-07-09 23:54:51 +0000
committerBob Wilson <bob.wilson@apple.com>2009-07-09 23:54:51 +0000
commit9ce44e25211aabcdbfe61fb4c4db81bebce2376f (patch)
tree3ac63d2bb60dbda589515f788f0b7f4ca698d242 /llvm/lib
parent1e5f00e7a7e8bb482a5388464f23d743040d1dbb (diff)
downloadbcm5719-llvm-9ce44e25211aabcdbfe61fb4c4db81bebce2376f.tar.gz
bcm5719-llvm-9ce44e25211aabcdbfe61fb4c4db81bebce2376f.zip
Handle 'a' modifier on inline assembly operands.
This is part of the fix for pr4521. llvm-svn: 75201
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
index 5559a5ef8d6..834ce6f6181 100644
--- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
+++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
@@ -907,8 +907,13 @@ bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
switch (ExtraCode[0]) {
default: return true; // Unknown modifier.
- case 'a': // Don't print "#" before a global var name or constant.
- case 'c': // Don't print "$" before a global var name or constant.
+ case 'a': // Print as a memory address.
+ if (MI->getOperand(OpNum).isReg()) {
+ O << "[" << TRI->getAsmName(MI->getOperand(OpNum).getReg()) << "]";
+ return false;
+ }
+ // Fallthrough
+ case 'c': // Don't print "#" before an immediate operand.
printOperand(MI, OpNum, "no_hash");
return false;
case 'P': // Print a VFP double precision register.
OpenPOWER on IntegriCloud