1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Blackfin always uses a reserved call frame.

Materializing the stack pointer update before a call requires a scratch
register that may not be available.

llvm-svn: 132601
This commit is contained in:
Jakob Stoklund Olesen 2011-06-03 22:45:18 +00:00
parent bd0677f8db
commit 0ac5f2eaf8
3 changed files with 7 additions and 2 deletions

View File

@ -31,6 +31,12 @@ bool BlackfinFrameLowering::hasFP(const MachineFunction &MF) const {
MFI->adjustsStack() || MFI->hasVarSizedObjects();
}
// Always reserve a call frame. We dont have enough registers to adjust SP.
bool BlackfinFrameLowering::
hasReservedCallFrame(const MachineFunction &MF) const {
return true;
}
// Emit a prologue that sets up a stack frame.
// On function entry, R0-R2 and P0 may hold arguments.
// R3, P1, and P2 may be used as scratch registers

View File

@ -36,6 +36,7 @@ public:
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
bool hasFP(const MachineFunction &MF) const;
bool hasReservedCallFrame(const MachineFunction &MF) const;
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
RegScavenger *RS) const;

View File

@ -41,8 +41,6 @@ namespace llvm {
return &BF::PRegClass;
}
// bool hasReservedCallFrame(MachineFunction &MF) const;
bool requiresRegisterScavenging(const MachineFunction &MF) const;
void eliminateCallFramePseudoInstr(MachineFunction &MF,