From 0327863a73a888e4f2ab103067bf4144ff3d462d Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Sat, 20 Jan 2007 02:08:16 +0000 Subject: [PATCH] Backend is reponsible for aligning the stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33388 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86RegisterInfo.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 6f9f3b627c6..ac1b4ef0b38 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -997,18 +997,16 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { // Get the number of bytes to allocate from the FrameInfo unsigned NumBytes = MFI->getStackSize(); - if (MFI->hasCalls() || MF.getFrameInfo()->hasVarSizedObjects()) { + if (MFI->hasCalls() && !hasFP(MF)) // When we have no frame pointer, we reserve argument space for call sites // in the function immediately on entry to the current function. This // eliminates the need for add/sub ESP brackets around call sites. // - if (!hasFP(MF)) - NumBytes += MFI->getMaxCallFrameSize(); + NumBytes += MFI->getMaxCallFrameSize(); - // Round the size to a multiple of the alignment (don't forget the 4/8 byte - // offset though). - NumBytes = ((NumBytes+SlotSize)+Align-1)/Align*Align - SlotSize; - } + // Round the size to a multiple of the alignment (don't forget the 4/8 byte + // offset though). + NumBytes = ((NumBytes+SlotSize)+Align-1)/Align*Align - SlotSize; // Update frame info to pretend that this is part of the stack... MFI->setStackSize(NumBytes);