mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +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:
@@ -33,7 +33,8 @@ namespace llvm {
|
||||
FloatABI::ABIType FloatABIType;
|
||||
bool NoImplicitFloat;
|
||||
bool NoZerosInBSS;
|
||||
bool ExceptionHandling;
|
||||
bool DwarfExceptionHandling;
|
||||
bool SjLjExceptionHandling;
|
||||
bool UnwindTablesMandatory;
|
||||
Reloc::Model RelocationModel;
|
||||
CodeModel::Model CMModel;
|
||||
@@ -104,9 +105,14 @@ DontPlaceZerosInBSS("nozero-initialized-in-bss",
|
||||
cl::location(NoZerosInBSS),
|
||||
cl::init(false));
|
||||
static cl::opt<bool, true>
|
||||
EnableExceptionHandling("enable-eh",
|
||||
EnableDwarfExceptionHandling("enable-eh",
|
||||
cl::desc("Emit DWARF exception handling (default if target supports)"),
|
||||
cl::location(ExceptionHandling),
|
||||
cl::location(DwarfExceptionHandling),
|
||||
cl::init(false));
|
||||
static cl::opt<bool, true>
|
||||
EnableSjLjExceptionHandling("enable-sjlj-eh",
|
||||
cl::desc("Emit SJLJ exception handling (default if target supports)"),
|
||||
cl::location(SjLjExceptionHandling),
|
||||
cl::init(false));
|
||||
static cl::opt<bool, true>
|
||||
EnableUnwindTables("unwind-tables",
|
||||
|
||||
Reference in New Issue
Block a user