summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-10-27 01:19:41 +0000
committerJim Grosbach <grosbach@apple.com>2010-10-27 01:19:41 +0000
commit9d2d1f0f00e1325040ccbe17a9ab4dfd1e886510 (patch)
treeb681f8b40aa58350d864bf4db4c0929ebc749e36 /llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
parent6bbe0912c32ae013a74c1f7719bb4facfae952fc (diff)
downloadbcm5719-llvm-9d2d1f0f00e1325040ccbe17a9ab4dfd1e886510.tar.gz
bcm5719-llvm-9d2d1f0f00e1325040ccbe17a9ab4dfd1e886510.zip
LDRi12 machine instructions handle negative offset operands normally (simple
integer values), not with the addrmode2 encoding. llvm-svn: 117429
Diffstat (limited to 'llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp')
-rw-r--r--llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
index 5df5aa16aa1..892558eed39 100644
--- a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
+++ b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
@@ -612,8 +612,11 @@ void ARMInstPrinter::printAddrModeImm12Operand(const MCInst *MI, unsigned OpNum,
O << "[" << getRegisterName(MO1.getReg());
- unsigned OffImm = MO2.getImm();
- if (OffImm) // Don't print +0.
+ int32_t OffImm = (int32_t)MO2.getImm();
+ // Don't print +0.
+ if (OffImm < 0)
+ O << ", #-" << -OffImm;
+ else if (OffImm > 0)
O << ", #" << OffImm;
O << "]";
}
OpenPOWER on IntegriCloud