[WinEH] Give up on using CSRs across 32-bit invokes for now
authorReid Kleckner <reid@kleckner.net>
Thu, 9 Jul 2015 22:09:41 +0000 (22:09 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 9 Jul 2015 22:09:41 +0000 (22:09 +0000)
commit5cf6c0b07047c59732589082ccfe0abac96a271a
tree4d59fb23c38b2e4b6578e75819e8b9ff24ff880c
parent827f211e950a0a371af9f497365b19f34dfbd6ff
[WinEH] Give up on using CSRs across 32-bit invokes for now

The runtime does not restore CSRs when transferring control back to the
function handling the exception. According to the experts on IRC, LLVM's
register allocator has no way to model register clobbers that only
happen on one edge of the CFG. For now, don't worry about trying to use
the meager three CSRs available on 32-bit X86 and just say that such
invokes preserve nothing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241865 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/seh-catch-all-win32.ll
test/CodeGen/X86/win32-eh.ll