summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/Thumb2RegisterInfo.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-07-26 18:55:14 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-07-26 18:55:14 +0000
commit30b2bdfa734d59bb7bc769dc2f06e4900a77f6f8 (patch)
tree7e00cb4e5e30bd4adf9e295196424d7767b080ba /lib/Target/ARM/Thumb2RegisterInfo.cpp
parent74fb545163e8f9f9f287b397254a82b4cfb2ff52 (diff)
downloadllvm-30b2bdfa734d59bb7bc769dc2f06e4900a77f6f8.tar.gz
llvm-30b2bdfa734d59bb7bc769dc2f06e4900a77f6f8.tar.bz2
llvm-30b2bdfa734d59bb7bc769dc2f06e4900a77f6f8.tar.xz
Refactor. Get rid of a few more getOpcode() calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77164 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Thumb2RegisterInfo.cpp')
-rw-r--r--lib/Target/ARM/Thumb2RegisterInfo.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Target/ARM/Thumb2RegisterInfo.cpp b/lib/Target/ARM/Thumb2RegisterInfo.cpp
index ce495fae1c..ae2d21e90c 100644
--- a/lib/Target/ARM/Thumb2RegisterInfo.cpp
+++ b/lib/Target/ARM/Thumb2RegisterInfo.cpp
@@ -165,6 +165,7 @@ requiresRegisterScavenging(const MachineFunction &MF) const {
int Thumb2RegisterInfo::
rewriteFrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
+ unsigned MOVOpc, unsigned ADDriOpc, unsigned SUBriOpc,
unsigned FrameReg, int Offset) const
{
unsigned Opcode = MI.getOpcode();
@@ -176,18 +177,18 @@ rewriteFrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
if (Opcode == ARM::INLINEASM)
AddrMode = ARMII::AddrModeT2_i12; // FIXME. mode for thumb2?
- if (Opcode == getOpcode(ARMII::ADDri)) {
+ if (Opcode == ADDriOpc) {
Offset += MI.getOperand(FrameRegIdx+1).getImm();
if (Offset == 0) {
// Turn it into a move.
- MI.setDesc(TII.get(ARM::t2MOVr));
+ MI.setDesc(TII.get(MOVOpc));
MI.getOperand(FrameRegIdx).ChangeToRegister(FrameReg, false);
MI.RemoveOperand(FrameRegIdx+1);
return 0;
} else if (Offset < 0) {
Offset = -Offset;
isSub = true;
- MI.setDesc(TII.get(getOpcode(ARMII::SUBri)));
+ MI.setDesc(TII.get(SUBriOpc));
}
// Common case: small offset, fits into instruction.
@@ -231,7 +232,7 @@ rewriteFrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
if ((AddrMode != ARMII::AddrModeT2_i8) &&
(AddrMode != ARMII::AddrModeT2_i12)) {
return ARMBaseRegisterInfo::rewriteFrameIndex(MI, FrameRegIdx,
- FrameReg, Offset);
+ ARM::t2MOVr, ARM::t2ADDri, ARM::t2SUBri, FrameReg, Offset);
}
unsigned NumBits = 0;