diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2008-03-31 20:40:39 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2008-03-31 20:40:39 +0000 |
| commit | ed6e34fe4185e6dd9efb10f3bd13f388b0a9b19d (patch) | |
| tree | 64dfb7297b187e13fb8a29dc99d5c26f8b899dae /llvm/lib/Target/ARM/ARMInstrInfo.cpp | |
| parent | f549b26254dc65e0f61bb71b26502adc1aee0d9f (diff) | |
| download | bcm5719-llvm-ed6e34fe4185e6dd9efb10f3bd13f388b0a9b19d.tar.gz bcm5719-llvm-ed6e34fe4185e6dd9efb10f3bd13f388b0a9b19d.zip | |
Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo.
llvm-svn: 48995
Diffstat (limited to 'llvm/lib/Target/ARM/ARMInstrInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.cpp b/llvm/lib/Target/ARM/ARMInstrInfo.cpp index 10328f7377c..5650235082c 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.cpp +++ b/llvm/lib/Target/ARM/ARMInstrInfo.cpp @@ -141,6 +141,22 @@ unsigned ARMInstrInfo::isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) con return 0; } +void ARMInstrInfo::reMaterialize(MachineBasicBlock &MBB, + MachineBasicBlock::iterator I, + unsigned DestReg, + const MachineInstr *Orig) const { + if (Orig->getOpcode() == ARM::MOVi2pieces) { + RI.emitLoadConstPool(MBB, I, DestReg, Orig->getOperand(1).getImm(), + Orig->getOperand(2).getImm(), + Orig->getOperand(3).getReg(), this, false); + return; + } + + MachineInstr *MI = Orig->clone(); + MI->getOperand(0).setReg(DestReg); + MBB.insert(I, MI); +} + static unsigned getUnindexedOpcode(unsigned Opc) { switch (Opc) { default: break; @@ -934,3 +950,4 @@ unsigned ARM::GetFunctionSize(MachineFunction &MF) { } return FnSize; } + |

