Implement hook for ppc

llvm-svn: 23374
This commit is contained in:
Chris Lattner 2005-09-17 01:03:26 +00:00
parent 6db5887db5
commit 4d9cf68023
2 changed files with 18 additions and 0 deletions

View File

@ -134,6 +134,22 @@ void PPC32RegisterInfo::copyRegToReg(MachineBasicBlock &MBB,
}
}
unsigned PPC32RegisterInfo::isLoadFromStackSlot(MachineInstr *MI,
int &FrameIndex) const {
switch (MI->getOpcode()) {
default: break;
case PPC::LWZ:
case PPC::LFD:
if (MI->getOperand(1).isImmediate() && !MI->getOperand(1).getImmedValue() &&
MI->getOperand(2).isFrameIndex()) {
FrameIndex = MI->getOperand(2).getFrameIndex();
return MI->getOperand(0).getReg();
}
break;
}
return 0;
}
/// foldMemoryOperand - PowerPC (like most RISC's) can only fold spills into
/// copy instructions, turning them into load/store instructions.
MachineInstr *PPC32RegisterInfo::foldMemoryOperand(MachineInstr *MI,

View File

@ -40,6 +40,8 @@ public:
unsigned DestReg, unsigned SrcReg,
const TargetRegisterClass *RC) const;
unsigned isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) const;
/// foldMemoryOperand - PowerPC (like most RISC's) can only fold spills into
/// copy instructions, turning them into load/store instructions.
virtual MachineInstr* foldMemoryOperand(MachineInstr* MI, unsigned OpNum,