The MC code couldn't handle ARM LDR instructions with negative offsets:
authorBill Wendling <isanbard@gmail.com>
Wed, 3 Nov 2010 01:49:29 +0000 (01:49 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 3 Nov 2010 01:49:29 +0000 (01:49 +0000)
commit92b5a2eb1646b3c1173a5ff3c0073f24ed5ee6a4
tree534c8e3e743a503fd2abdb4a63599fb3e4b979dc
parent394d6298bcf89a75b51c8314a6705f6984e46b49
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118144 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMCodeEmitter.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrVFP.td
lib/Target/ARM/ARMMCCodeEmitter.cpp
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
test/MC/ARM/simple-fp-encoding.s