summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2015-11-06 01:49:05 +0000
committerReid Kleckner <rnk@google.com>2015-11-06 01:49:05 +0000
commit51460c139eb95d1ee2daf62ebed082f735016392 (patch)
treeb80ea144ab445ec34be42fcb0f920d19cc36a1fb /lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp
parent8d372b9761e73455873069660491e10c289009ab (diff)
downloadbcm5719-llvm-51460c139eb95d1ee2daf62ebed082f735016392.tar.gz
bcm5719-llvm-51460c139eb95d1ee2daf62ebed082f735016392.zip
[WinEH] Split EH_RESTORE out of CATCHRET for 32-bit EH
This adds the EH_RESTORE x86 pseudo instr, which is responsible for restoring the stack pointers: EBP and ESP, and ESI if stack realignment is involved. We only need this on 32-bit x86, because on x64 the runtime restores CSRs for us. Previously we had to keep the CATCHRET instruction around during SEH so that we could convince X86FrameLowering to restore our frame pointers. Now we can split these instructions earlier. This was confusing, because we had a return instruction which wasn't really a return and was ultimately going to be removed by X86FrameLowering. This change also simplifies X86FrameLowering, which really shouldn't be building new MBBs. No observable functional change currently, but with the new register mask stuff in D14407, CATCHRET will become a register allocator barrier, and our existing tests rely on us having reasonable register allocation around SEH. llvm-svn: 252266
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud