diff options
author | Bill Wendling <isanbard@gmail.com> | 2010-11-03 01:49:29 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2010-11-03 01:49:29 +0000 |
commit | e84eb99cbb5dbb0f8c9397a1a730246c1188ca30 (patch) | |
tree | 4d027d5daa2a3db28cab108b4a771900f3b704f7 /llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | |
parent | 68fb004616a5410033b2ad8d2b42fcd8977e6874 (diff) | |
download | bcm5719-llvm-e84eb99cbb5dbb0f8c9397a1a730246c1188ca30.tar.gz bcm5719-llvm-e84eb99cbb5dbb0f8c9397a1a730246c1188ca30.zip |
The MC code couldn't handle ARM LDR instructions with negative offsets:
vldr.64 d1, [r0, #-32]
The problem was with how the addressing mode 5 encodes the offsets. This change
makes sure that the way offsets are handled in addressing mode 5 is consistent
throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue"
method into an "Imm12" and "addressing mode 5" version. But not to worry! The
majority of the duplicated code has been unified.
llvm-svn: 118144
Diffstat (limited to 'llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp index 4c233a6184f..790557037c4 100644 --- a/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp +++ b/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp @@ -310,7 +310,7 @@ void ARMInstPrinter::printAddrMode5Operand(const MCInst *MI, unsigned OpNum, if (unsigned ImmOffs = ARM_AM::getAM5Offset(MO2.getImm())) { O << ", #" << ARM_AM::getAddrOpcStr(ARM_AM::getAM5Op(MO2.getImm())) - << ImmOffs*4; + << ImmOffs * 4; } O << "]"; } |