[WinEH] Add 32-bit SEH state table emission prototype
authorReid Kleckner <reid@kleckner.net>
Tue, 9 Jun 2015 21:42:19 +0000 (21:42 +0000)
committerReid Kleckner <reid@kleckner.net>
Tue, 9 Jun 2015 21:42:19 +0000 (21:42 +0000)
commitf12c030f4879e2bf2caca21976f5de9ba8c48bdd
tree21b2e4664e29273f3905ed81222e87a61abeec1c
parentcf90acc1041fea47db7d862a21b24534b5df21b0
[WinEH] Add 32-bit SEH state table emission prototype

This gets all the handler info through to the asm printer and we can
look at the .xdata tables now. I've convinced one small catch-all test
case to work, but other than that, it would be a stretch to say this is
functional.

The state numbering algorithm avoids doing any scope reconstruction as
we do for C++ to simplify the implementation.

llvm-svn: 239433
llvm/include/llvm/IR/Intrinsics.td
llvm/lib/CodeGen/AsmPrinter/WinException.cpp
llvm/lib/CodeGen/AsmPrinter/WinException.h
llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/CodeGen/WinEHPrepare.cpp
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86WinEHState.cpp
llvm/test/CodeGen/X86/seh-catch-all.ll
llvm/test/CodeGen/X86/seh-safe-div-win32.ll [new file with mode: 0644]
llvm/test/CodeGen/X86/win32-eh.ll