/// foldMemoryOperand - SPU, like PPC, can only fold spills into
/// copy instructions, turning them into load/store instructions.
MachineInstr *
-SPURegisterInfo::foldMemoryOperand(MachineInstr *MI, unsigned OpNum,
+SPURegisterInfo::foldMemoryOperand(MachineInstr *MI,
+ SmallVectorImpl<unsigned> &Ops,
int FrameIndex) const
{
#if SOMEDAY_SCOTT_LOOKS_AT_ME_AGAIN
+ if (Ops.size() != 1) return NULL;
+
+ unsigned OpNum = Ops[0];
unsigned Opc = MI->getOpcode();
MachineInstr *NewMI = 0;
/// General-purpose load/store fold to operand code
MachineInstr *
-SPURegisterInfo::foldMemoryOperand(MachineInstr *MI, unsigned OpNum,
+SPURegisterInfo::foldMemoryOperand(MachineInstr *MI,
+ SmallVectorImpl<unsigned> &Ops,
MachineInstr *LoadMI) const
{
return 0;
unsigned DestReg, const MachineInstr *Orig) const;
//! Fold spills into load/store instructions
- virtual MachineInstr* foldMemoryOperand(MachineInstr* MI, unsigned OpNum,
+ virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
+ SmallVectorImpl<unsigned> &Ops,
int FrameIndex) const;
//! Fold any load/store to an operand
- virtual MachineInstr* foldMemoryOperand(MachineInstr* MI, unsigned OpNum,
+ virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
+ SmallVectorImpl<unsigned> &Ops,
MachineInstr* LoadMI) const;
//! Return the array of callee-saved registers