aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-09-03 22:19:22 +0000
committerBill Wendling <isanbard@gmail.com>2009-09-03 22:19:22 +0000
commitc9ca26dded387110e8c7520f52bd635eb483d1ec (patch)
tree39970667354c7fdaeed6b02f18df2a4d0822f9c3
parent2f2ab4797b28ede081fda36855a26e8ec1b9357e (diff)
downloadexternal_llvm-c9ca26dded387110e8c7520f52bd635eb483d1ec.zip
external_llvm-c9ca26dded387110e8c7520f52bd635eb483d1ec.tar.gz
external_llvm-c9ca26dded387110e8c7520f52bd635eb483d1ec.tar.bz2
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/trunk@80960 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86RegisterInfo.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index 5d1ee17..76d2b97 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);