diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-11-08 00:15:23 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-11-08 00:15:23 +0000 |
commit | fdc834046efd427d474e3b899ec69354c05071e0 (patch) | |
tree | 9b63bb0b06de5623e59b7ef5b56a5b0766f62f14 /lib/Target/ARM/ARMInstrInfo.cpp | |
parent | 5ba331a2ae09e343ff9b21bdb4622a7ae8f67648 (diff) | |
download | llvm-fdc834046efd427d474e3b899ec69354c05071e0.tar.gz llvm-fdc834046efd427d474e3b899ec69354c05071e0.tar.bz2 llvm-fdc834046efd427d474e3b899ec69354c05071e0.tar.xz |
Refactor code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86423 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrInfo.cpp')
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.cpp b/lib/Target/ARM/ARMInstrInfo.cpp index d3cbb681f8..5e5b718dd7 100644 --- a/lib/Target/ARM/ARMInstrInfo.cpp +++ b/lib/Target/ARM/ARMInstrInfo.cpp @@ -80,29 +80,26 @@ bool ARMInstrInfo::BlockHasNoFallThrough(const MachineBasicBlock &MBB) const { } void ARMInstrInfo:: -reMaterialize(MachineBasicBlock &MBB, - MachineBasicBlock::iterator I, +reMaterialize(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, unsigned DestReg, unsigned SubIdx, const MachineInstr *Orig) const { DebugLoc dl = Orig->getDebugLoc(); unsigned Opcode = Orig->getOpcode(); switch (Opcode) { - default: { - MachineInstr *MI = MBB.getParent()->CloneMachineInstr(Orig); - MI->getOperand(0).setReg(DestReg); - MBB.insert(I, MI); + default: break; - } - case ARM::MOVi2pieces: + case ARM::MOVi2pieces: { RI.emitLoadConstPool(MBB, I, dl, DestReg, SubIdx, Orig->getOperand(1).getImm(), (ARMCC::CondCodes)Orig->getOperand(2).getImm(), Orig->getOperand(3).getReg()); - break; + MachineInstr *NewMI = prior(I); + NewMI->getOperand(0).setSubReg(SubIdx); + return; + } } - MachineInstr *NewMI = prior(I); - NewMI->getOperand(0).setSubReg(SubIdx); + return ARMBaseInstrInfo::reMaterialize(MBB, I, DestReg, SubIdx, Orig); } |