Implement Thumb2 ldr.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 29 Jun 2009 07:51:04 +0000 (07:51 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 29 Jun 2009 07:51:04 +0000 (07:51 +0000)
commit055b0310f862b91f33699037ce67d3ab8137c20c
tree6924272e732298bf99146b69c12f9029a5e1adc5
parent95c1f5ba64e7ad505781235839b65a2a8f64a733
Implement Thumb2 ldr.

After much back and forth, I decided to deviate from ARM design and split LDR into 4 instructions (r + imm12, r + imm8, r + r << imm12, constantpool). The advantage of this is 1) it follows the latest ARM technical manual, and 2) makes it easier to reduce the width of the instruction later. The down side is this creates more inconsistency between the two sub-targets. We should split ARM LDR instruction in a similar fashion later. I've added a README entry for this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74420 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
lib/Target/ARM/ARMAddressingModes.h
lib/Target/ARM/ARMConstantIslandPass.cpp
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMInstrFormats.td
lib/Target/ARM/ARMInstrInfo.h
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb.td
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
lib/Target/ARM/README.txt
lib/Target/ARM/ThumbRegisterInfo.cpp
test/CodeGen/ARM/ldr.ll
test/CodeGen/Thumb2/thumb2-ldr.ll [new file with mode: 0644]