return NoFramePointerElim || MFI->hasVarSizedObjects();
}
-bool SystemZRegisterInfo::hasReservedCallFrame(MachineFunction &MF) const {
- // FIXME: Should we always have reserved call frame?
- return !MF.getFrameInfo()->hasVarSizedObjects();
-}
-
void SystemZRegisterInfo::
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
MachineBasicBlock::iterator I) const {
- if (!hasReservedCallFrame(MF)) {
- // If the stack pointer can be changed after prologue, turn the
- // adjcallstackup instruction into a 'sub R15, <amt>' and the
- // adjcallstackdown instruction into 'add R15, <amt>'
- MachineInstr *Old = I;
- uint64_t Amount = Old->getOperand(0).getImm();
-
- assert((Amount == 0) && "Not implemented yet!");
- }
-
MBB.erase(I);
}
BitVector getReservedRegs(const MachineFunction &MF) const;
- bool hasReservedCallFrame(MachineFunction &MF) const;
+ bool hasReservedCallFrame(MachineFunction &MF) const { return true; }
bool hasFP(const MachineFunction &MF) const;
int getFrameIndexOffset(MachineFunction &MF, int FI) const;