From 08b3db33e1a5cdfcfe2bfb01838bc6331bf8cffb Mon Sep 17 00:00:00 2001 From: Tanya Lattner Date: Wed, 16 Sep 2009 01:04:02 +0000 Subject: [PATCH] Merge 80960 from mainline. If we've pushed registers onto the stack, but aren't adjusting the stack pointer (i.e., there are no local variables and stuff), we still need to output FDE information for the pushed registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_26@81973 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86RegisterInfo.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 112ff1ce24d..f922a84c056 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -1086,12 +1086,12 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { emitSPUpdate(MBB, MBBI, StackPtr, -(int64_t)NumBytes, Is64Bit, TII); } - if (NumBytes && needsFrameMoves) { + if ((NumBytes || PushedRegs) && needsFrameMoves) { // Mark end of stack pointer adjustment. unsigned LabelId = MMI->NextLabelID(); BuildMI(MBB, MBBI, DL, TII.get(X86::DBG_LABEL)).addImm(LabelId); - if (!HasFP) { + if (!HasFP && NumBytes) { // Define the current CFA rule to use the provided offset. if (StackSize) { MachineLocation SPDst(MachineLocation::VirtualFP); -- 2.50.1