diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-07-11 06:43:01 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-07-11 06:43:01 +0000 |
commit | cd4cdd1157ecd0d13ea97bda7b524991cbb1c6ae (patch) | |
tree | 76ea2e3ef90830ae442c9d648be7b04dd814e6e6 /llvm/lib/Target/ARM/Thumb2InstrInfo.cpp | |
parent | bf041366c4e57cd0e2c81a16223f7c3a55830630 (diff) | |
download | bcm5719-llvm-cd4cdd1157ecd0d13ea97bda7b524991cbb1c6ae.tar.gz bcm5719-llvm-cd4cdd1157ecd0d13ea97bda7b524991cbb1c6ae.zip |
Major changes to Thumb (not Thumb2). Many 16-bit instructions either modifies CPSR when they are outside the IT blocks, or they can predicated when in Thumb2. Move the implicit def of CPSR to an optional def which defaults CPSR. This allows the 's' bit to be toggled dynamically.
A side-effect of this change is asm printer is now using unified assembly. There are some minor clean ups and fixes as well.
llvm-svn: 75359
Diffstat (limited to 'llvm/lib/Target/ARM/Thumb2InstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/Thumb2InstrInfo.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp b/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp index b82fb3fe9fc..6103463e87b 100644 --- a/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp +++ b/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp @@ -26,14 +26,12 @@ Thumb2InstrInfo::Thumb2InstrInfo(const ARMSubtarget &STI) : ARMBaseInstrInfo(STI), RI(*this, STI) { } -unsigned Thumb2InstrInfo:: -getUnindexedOpcode(unsigned Opc) const { +unsigned Thumb2InstrInfo::getUnindexedOpcode(unsigned Opc) const { // FIXME return 0; } -unsigned Thumb2InstrInfo:: -getOpcode(ARMII::Op Op) const { +unsigned Thumb2InstrInfo::getOpcode(ARMII::Op Op) const { switch (Op) { case ARMII::ADDri: return ARM::t2ADDri; case ARMII::ADDrs: return ARM::t2ADDrs; @@ -43,7 +41,7 @@ getOpcode(ARMII::Op Op) const { case ARMII::BR_JTr: return ARM::t2BR_JTr; case ARMII::BR_JTm: return ARM::t2BR_JTm; case ARMII::BR_JTadd: return ARM::t2BR_JTadd; - case ARMII::BX_RET: return ARM::t2BX_RET; + case ARMII::BX_RET: return ARM::tBX_RET; case ARMII::FCPYS: return ARM::FCPYS; case ARMII::FCPYD: return ARM::FCPYD; case ARMII::FLDD: return ARM::FLDD; @@ -71,7 +69,6 @@ Thumb2InstrInfo::BlockHasNoFallThrough(const MachineBasicBlock &MBB) const { // FIXME switch (MBB.back().getOpcode()) { - case ARM::t2BX_RET: case ARM::t2LDM_RET: case ARM::t2B: // Uncond branch. case ARM::t2BR_JTr: // Jumptable branch. |