mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-28 03:25:23 +00:00
SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -394,9 +394,19 @@ bool LTOCodeGenerator::generateAssemblyCode(formatted_raw_ostream& out,
|
||||
|
||||
Module* mergedModule = _linker.getModule();
|
||||
|
||||
// If target supports exception handling then enable it now.
|
||||
if ( _target->getTargetAsmInfo()->doesSupportExceptionHandling() )
|
||||
llvm::ExceptionHandling = true;
|
||||
// If target supports exception handling then enable it now.
|
||||
switch (_target->getTargetAsmInfo()->getExceptionHandlingType()) {
|
||||
case ExceptionHandling::Dwarf:
|
||||
llvm::DwarfExceptionHandling = true;
|
||||
break;
|
||||
case ExceptionHandling::SjLj:
|
||||
llvm::SjLjExceptionHandling = true;
|
||||
break;
|
||||
case ExceptionHandling::None:
|
||||
break;
|
||||
default:
|
||||
assert (0 && "Unknown exception handling model!");
|
||||
}
|
||||
|
||||
// if options were requested, set them
|
||||
if ( !_codegenOptions.empty() )
|
||||
|
Reference in New Issue
Block a user