- cdsetjmp
void cdsetjmp(CodeBuilder cdb, elem* e, regm_t* pretregs)
Generate code for setjmp().
- nteh_context_string
ubyte* nteh_context_string()
- nteh_contextsym
Symbol* nteh_contextsym()
- nteh_contextsym_size
uint nteh_contextsym_size()
- nteh_declarvars
void nteh_declarvars(Blockx* bx)
- nteh_ecodesym
Symbol* nteh_ecodesym()
Return: pointer to ecode symbol.
- nteh_epilog
void nteh_epilog(CodeBuilder cdb)
Generate NT exception handling function epilog.
- nteh_filltables
void nteh_filltables()
- nteh_filter
void nteh_filter(CodeBuilder cdb, block* b)
Put out prolog for BC_filter block.
- nteh_framehandler
void nteh_framehandler(Symbol* sfunc, Symbol* scopetable)
Generate C++ or D frame handler.
- nteh_gentables
void nteh_gentables(Symbol* sfunc)
Generate and output scope table.
Not called for NTEH C++ exceptions
- nteh_monitor_epilog
void nteh_monitor_epilog(CodeBuilder cdb, regm_t retregs)
Release monitor, unhook monitor exception handler.
Input:
retregs registers to not destroy
- nteh_monitor_prolog
void nteh_monitor_prolog(CodeBuilder cdb, Symbol* shandle)
Set monitor, hook monitor exception handler.
- nteh_patchindex
code* nteh_patchindex(code* c, int sindex)
Generate code to set scope index.
- nteh_prolog
void nteh_prolog(CodeBuilder cdb)
Generate NT exception handling function prolog.
- nteh_setScopeTableIndex
elem* nteh_setScopeTableIndex(Blockx* blx, int scope_index)
Generate elem that sets the context index into the scope table.
- nteh_setsp
void nteh_setsp(CodeBuilder cdb, opcode_t op)
Set/Reset ESP from context.
- nteh_unwind
void nteh_unwind(CodeBuilder cdb, regm_t saveregs, uint stop_index)
Call _local_unwind(), which means call the __finally blocks until
stop_index is reached.
- nteh_usevars
void nteh_usevars()
Mark EH variables as used so that they don't get optimized away.
Support for NT exception handling
Compiler implementation of the D programming language.