summaryrefslogtreecommitdiffstats
path: root/llvm/lib
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
commitea0185fe916ce46bfcc18be63e396c54036ef091 (patch)
treef4a146c49595eed9f8d382ec12872d9ca46d8cf1 /llvm/lib
parent2a53b30f6d938c17cca0ce578fee0f4e301565c4 (diff)
downloadbcm5719-llvm-ea0185fe916ce46bfcc18be63e396c54036ef091.tar.gz
bcm5719-llvm-ea0185fe916ce46bfcc18be63e396c54036ef091.zip
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. llvm-svn: 80960
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86RegisterInfo.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp
index 5d1ee17c37a..76d2b97bf9f 100644
--- a/llvm/lib/Target/X86/X86RegisterInfo.cpp
+++ b/llvm/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);
OpenPOWER on IntegriCloud