[WinEH] Push and pop EBP for 32-bit funclets
authorReid Kleckner <rnk@google.com>
Thu, 10 Sep 2015 22:00:02 +0000 (22:00 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 10 Sep 2015 22:00:02 +0000 (22:00 +0000)
commit3f3f976995bbc2690cfc6bc8af2f60e765022772
tree405f20112dad72d5143bc537972de82c09797446
parentd62d9ca7fa17d2da81720450fa15089104550936
[WinEH] Push and pop EBP for 32-bit funclets

The Win32 EH runtime caller does not preserve EBP, even though it does
preserve the CSRs (EBX, ESI, EDI) for us. The result was that each
finally funclet call would leave the frame pointer off by 12 bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247348 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
test/CodeGen/X86/win-catchpad-csrs.ll
test/CodeGen/X86/win-catchpad.ll
test/CodeGen/X86/win32-seh-cleanupendpad.ll