mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 01:42:09 +00:00
CodeGen: indicate Windows unwind data format
The structures for Windows unwinding are shared across multiple platforms. Indicate the encoding to be used for the particular target. Use this to switch the unwind emitter instantiated by the AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216895 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
05c3ddfa4e
commit
901a3419d1
@ -244,7 +244,12 @@ bool AsmPrinter::doInitialization(Module &M) {
|
||||
ES = new ARMException(this);
|
||||
break;
|
||||
case ExceptionHandling::WinEH:
|
||||
ES = new Win64Exception(this);
|
||||
switch (MAI->getWinEHEncodingType()) {
|
||||
default: llvm_unreachable("unsupported unwinding information encoding");
|
||||
case WinEH::EncodingType::Itanium:
|
||||
ES = new Win64Exception(this);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (ES)
|
||||
|
@ -142,6 +142,7 @@ X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft(const Triple &Triple) {
|
||||
if (Triple.getArch() == Triple::x86_64) {
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PointerSize = 8;
|
||||
WinEHEncodingType = WinEH::EncodingType::Itanium;
|
||||
ExceptionsType = ExceptionHandling::WinEH;
|
||||
}
|
||||
|
||||
@ -161,6 +162,7 @@ X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(const Triple &Triple) {
|
||||
if (Triple.getArch() == Triple::x86_64) {
|
||||
PrivateGlobalPrefix = ".L";
|
||||
PointerSize = 8;
|
||||
WinEHEncodingType = WinEH::EncodingType::Itanium;
|
||||
ExceptionsType = ExceptionHandling::WinEH;
|
||||
} else {
|
||||
ExceptionsType = ExceptionHandling::DwarfCFI;
|
||||
|
Loading…
Reference in New Issue
Block a user