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 | fe864425cbe3b6062d042b2e775a6578f0692bc0 (patch) | |
tree | 17f02e18d743b5e2821e36c744f931c774162f72 /llvm/lib/Target/ARM/ARMInstrInfo.cpp | |
parent | 066967052c7d26358a4102ebcd01f9abc0b8e281 (diff) | |
download | bcm5719-llvm-fe864425cbe3b6062d042b2e775a6578f0692bc0.tar.gz bcm5719-llvm-fe864425cbe3b6062d042b2e775a6578f0692bc0.zip |
Refactor code.
llvm-svn: 86423
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.cpp b/llvm/lib/Target/ARM/ARMInstrInfo.cpp index d3cbb681f81..5e5b718dd72 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.cpp +++ b/llvm/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); } |