summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/Thumb2InstrInfo.cpp
diff options
context:
space:
mode:
authorDavid Goodwin <david_goodwin@apple.com>2009-07-24 00:16:18 +0000
committerDavid Goodwin <david_goodwin@apple.com>2009-07-24 00:16:18 +0000
commit5ff58b5c3ab6df332600678798ea5c69c5e943d3 (patch)
tree587c9b878c6b0b74b4c23ae18c86c6a0cc7e9595 /lib/Target/ARM/Thumb2InstrInfo.cpp
parent74e52108090f29a92ebb78d33451104bc445ac55 (diff)
downloadllvm-5ff58b5c3ab6df332600678798ea5c69c5e943d3.tar.gz
llvm-5ff58b5c3ab6df332600678798ea5c69c5e943d3.tar.bz2
llvm-5ff58b5c3ab6df332600678798ea5c69c5e943d3.tar.xz
Correctly handle the Thumb-2 imm8 addrmode. Specialize frame index elimination more exactly for Thumb-2 to get better code gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Thumb2InstrInfo.cpp')
-rw-r--r--lib/Target/ARM/Thumb2InstrInfo.cpp29
1 files changed, 4 insertions, 25 deletions
diff --git a/lib/Target/ARM/Thumb2InstrInfo.cpp b/lib/Target/ARM/Thumb2InstrInfo.cpp
index d92856cf0c..91a1dcbf43 100644
--- a/lib/Target/ARM/Thumb2InstrInfo.cpp
+++ b/lib/Target/ARM/Thumb2InstrInfo.cpp
@@ -48,9 +48,11 @@ unsigned Thumb2InstrInfo::getOpcode(ARMII::Op Op) const {
case ARMII::FLDS: return ARM::FLDS;
case ARMII::FSTD: return ARM::FSTD;
case ARMII::FSTS: return ARM::FSTS;
- case ARMII::LDR: return ARM::LDR; // FIXME
+ case ARMII::LDRrr: return ARM::t2LDRs;
+ case ARMII::LDRri: return ARM::t2LDRi12;
case ARMII::MOVr: return ARM::t2MOVr;
- case ARMII::STR: return ARM::STR; // FIXME
+ case ARMII::STRrr: return ARM::t2STRs;
+ case ARMII::STRri: return ARM::t2STRi12;
case ARMII::SUBri: return ARM::t2SUBri;
case ARMII::SUBrs: return ARM::t2SUBrs;
case ARMII::SUBrr: return ARM::t2SUBrr;
@@ -88,29 +90,6 @@ Thumb2InstrInfo::BlockHasNoFallThrough(const MachineBasicBlock &MBB) const {
return false;
}
-unsigned
-Thumb2InstrInfo::unsignedOffsetOpcodeToSigned(unsigned opcode,
- unsigned *NumBits) const
-{
- if (NumBits != NULL)
- *NumBits = 8;
-
- switch (opcode) {
- case ARM::t2LDRi12: return ARM::t2LDRi8;
- case ARM::t2LDRHi12: return ARM::t2LDRHi8;
- case ARM::t2LDRBi12: return ARM::t2LDRBi8;
- case ARM::t2LDRSHi12: return ARM::t2LDRSHi8;
- case ARM::t2LDRSBi12: return ARM::t2LDRSBi8;
- case ARM::t2STRi12: return ARM::t2STRi8;
- case ARM::t2STRBi12: return ARM::t2STRBi8;
- case ARM::t2STRHi12: return ARM::t2STRHi8;
- default:
- break;
- }
-
- return 0;
-}
-
bool
Thumb2InstrInfo::copyRegToReg(MachineBasicBlock &MBB,
MachineBasicBlock::iterator I,