mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
- Tell PEI that PPC will handle stack frame rounding itself.
- Do not round up to max. alignment of stack object if it is > stack alignment. It will have to be handled with dynamic aligning code. llvm-svn: 33505
This commit is contained in:
parent
b64363a085
commit
9009b02367
@ -451,9 +451,6 @@ void PPCRegisterInfo::lowerDynamicAlloc(MachineBasicBlock::iterator II) const {
|
||||
// Determine the maximum call stack size. maxCallFrameSize may be
|
||||
// less than the minimum.
|
||||
unsigned maxCallFrameSize = MFI->getMaxCallFrameSize();
|
||||
unsigned getMinCallFrameSize =
|
||||
PPCFrameInfo::getMinCallFrameSize(LP64);
|
||||
maxCallFrameSize = std::max(maxCallFrameSize, getMinCallFrameSize);
|
||||
// Get the total frame size.
|
||||
unsigned FrameSize = MFI->getStackSize();
|
||||
|
||||
@ -712,11 +709,9 @@ void PPCRegisterInfo::determineFrameLayout(MachineFunction &MF) const {
|
||||
|
||||
// Get the alignments provided by the target, and the maximum alignment
|
||||
// (if any) of the fixed frame objects.
|
||||
unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
|
||||
unsigned MaxAlign = MFI->getMaxAlignment();
|
||||
unsigned Align = std::max(TargetAlign, MaxAlign);
|
||||
assert(isPowerOf2_32(Align) && "Alignment is not power of 2");
|
||||
unsigned AlignMask = Align - 1; //
|
||||
unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment();
|
||||
unsigned AlignMask = TargetAlign - 1; //
|
||||
|
||||
// If we are a leaf function, and use up to 224 bytes of stack space,
|
||||
// don't have a frame pointer, calls, or dynamic alloca then we do not need
|
||||
|
@ -58,6 +58,11 @@ public:
|
||||
|
||||
const TargetRegisterClass* const* getCalleeSavedRegClasses() const;
|
||||
|
||||
/// targetHandlesStackFrameRounding - Returns true if the target is
|
||||
/// responsible for rounding up the stack frame (probably at emitPrologue
|
||||
/// time).
|
||||
bool targetHandlesStackFrameRounding() const { return true; }
|
||||
|
||||
bool hasFP(const MachineFunction &MF) const;
|
||||
|
||||
void eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||
|
Loading…
Reference in New Issue
Block a user