diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-01-25 22:25:04 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-01-25 22:25:04 +0000 |
commit | 99403b6964aead64c1039a8f4007437ef96dfd88 (patch) | |
tree | 99e663aced67fd6438eef8f34ae4ea14feb75012 | |
parent | 02a20291410a6814c657b69901a57103d4861a07 (diff) |
- 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
-rw-r--r-- | lib/Target/PowerPC/PPCRegisterInfo.cpp | 9 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCRegisterInfo.h | 5 |
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index 465960afda..76ade79414 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -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 diff --git a/lib/Target/PowerPC/PPCRegisterInfo.h b/lib/Target/PowerPC/PPCRegisterInfo.h index 7d35c6a26a..f8344de6ac 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.h +++ b/lib/Target/PowerPC/PPCRegisterInfo.h @@ -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, |