diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-10-27 01:19:41 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-10-27 01:19:41 +0000 |
commit | 9d2d1f0f00e1325040ccbe17a9ab4dfd1e886510 (patch) | |
tree | b681f8b40aa58350d864bf4db4c0929ebc749e36 /llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | |
parent | 6bbe0912c32ae013a74c1f7719bb4facfae952fc (diff) | |
download | bcm5719-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.cpp | 7 |
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 << "]"; } |