OSDN Git Service

[WinEH] Emit EH tables for __CxxFrameHandler3 on 32-bit x86
authorReid Kleckner <reid@kleckner.net>
Fri, 29 May 2015 17:00:57 +0000 (17:00 +0000)
committerReid Kleckner <reid@kleckner.net>
Fri, 29 May 2015 17:00:57 +0000 (17:00 +0000)
commit16e4a624c40596ae6f16ab15f0a9fb30f2fd4f2b
tree3c75ae8108dd0b596fd8437d06ee2eb3f63e3b41
parentef056a91119257bc71c1df8b50e4ebd3d0d04c3b
[WinEH] Emit EH tables for __CxxFrameHandler3 on 32-bit x86

Small (really small!) C++ exception handling examples work on 32-bit x86
now.

This change disables the use of .seh_* directives in WinException when
CFI is not in use. It also uses absolute symbol references in the tables
instead of imagerel32 relocations.

Also fixes a cache invalidation bug in MMI personality classification.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238575 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/AsmPrinter/WinException.cpp
lib/CodeGen/AsmPrinter/WinException.h
lib/CodeGen/MachineModuleInfo.cpp
lib/MC/MCAsmStreamer.cpp
lib/MC/MCStreamer.cpp
lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
test/CodeGen/X86/win32-eh.ll