mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-20 12:31:40 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33505 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
02a2029141
commit
99403b6964
@ -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…
x
Reference in New Issue
Block a user