diff options
| author | Bill Wendling <isanbard@gmail.com> | 2009-07-14 01:16:18 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2009-07-14 01:16:18 +0000 |
| commit | b1f9128c721a2ac1cb99803800bc8e24cd018ffc (patch) | |
| tree | b1e4ddfe9e9797274a69097477fa6dc141a1bf96 /llvm/lib/Target/X86/X86RegisterInfo.cpp | |
| parent | 170e816effc410e56e64f6d313c25273efacb0f4 (diff) | |
| download | bcm5719-llvm-b1f9128c721a2ac1cb99803800bc8e24cd018ffc.tar.gz bcm5719-llvm-b1f9128c721a2ac1cb99803800bc8e24cd018ffc.zip | |
Remove hack now that Evan fixed it so that the frame pointer isn't saved twice.
llvm-svn: 75581
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index 6bb05c5ebe2..3ae758b7bf6 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -691,29 +691,6 @@ void X86RegisterInfo::emitCalleeSavedFrameMoves(MachineFunction &MF, unsigned Reg = I->getReg(); Offset = MaxOffset - Offset + saveAreaOffset; - // Don't output a new machine move if we're re-saving the frame - // pointer. This happens when the PrologEpilogInserter has inserted an extra - // "PUSH" of the frame pointer -- the "emitPrologue" method automatically - // generates one when frame pointers are used. If we generate a "machine - // move" for this extra "PUSH", the linker will lose track of the fact that - // the frame pointer should have the value of the first "PUSH" when it's - // trying to unwind. - // - // FIXME: This looks inelegant. It's possibly correct, but it's covering up - // another bug. I.e., one where we generate a prolog like this: - // - // pushl %ebp - // movl %esp, %ebp - // pushl %ebp - // pushl %esi - // ... - // - // The immediate re-push of EBP is unnecessary. At the least, it's an - // optimization bug. EBP can be used as a scratch register in certain - // cases, but probably not when we have a frame pointer. - if (HasFP && FramePtr == Reg) - continue; - MachineLocation CSDst(MachineLocation::VirtualFP, Offset); MachineLocation CSSrc(Reg); Moves.push_back(MachineMove(LabelId, CSDst, CSSrc)); |

