]> granicus.if.org Git - llvm/commit
[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)
commitbdcbc426af9836ee57e21bf912e29bd5c32f7851
tree47f5a131a5bc7c03332df642bbb3ae65940169d7
parente2e26b486d6ae336927e99898eddc01e08c37e44
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239433 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Intrinsics.td
lib/CodeGen/AsmPrinter/WinException.cpp
lib/CodeGen/AsmPrinter/WinException.h
lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/WinEHPrepare.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86WinEHState.cpp
test/CodeGen/X86/seh-catch-all.ll
test/CodeGen/X86/seh-safe-div-win32.ll [new file with mode: 0644]
test/CodeGen/X86/win32-eh.ll