We already have reserved call frame regardless whether variable sized frame objects were present or not

llvm-svn: 75987
This commit is contained in:
Anton Korobeynikov 2009-07-16 14:09:04 +00:00
parent 43d33bd6d2
commit 432d4cd915
2 changed files with 1 additions and 16 deletions

View File

@ -76,24 +76,9 @@ bool SystemZRegisterInfo::hasFP(const MachineFunction &MF) const {
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);
}

View File

@ -46,7 +46,7 @@ struct SystemZRegisterInfo : public SystemZGenRegisterInfo {
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;