View source code
Display the source code in dmd/backend/nteh.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module dmd.backend.nteh

Support for NT exception handling

Compiler implementation of the D programming language.



cdsetjmp(cdb, e, pretregs) Generate code for setjmp().
nteh_declarvars(bx) Declare frame variables.
nteh_epilog(cdb) Generate NT exception handling function epilog.
nteh_filter(cdb, b) Put out prolog for BC_filter block.
nteh_framehandler(sfunc, scopetable) Generate C++ or D frame handler.
nteh_gentables(sfunc) Generate and output scope table. Not called for NTEH C++ exceptions
nteh_monitor_epilog(cdb, retregs) Release monitor, unhook monitor exception handler.
nteh_monitor_prolog(cdb, shandle) Set monitor, hook monitor exception handler.
nteh_patchindex(c, sindex) Generate code to set scope index.
nteh_prolog(cdb) Generate NT exception handling function prolog.
nteh_setScopeTableIndex(blx, scope_index) Generate elem that sets the context index into the scope table.
nteh_setsp(cdb, op) Set/Reset ESP from context.
nteh_unwind(cdb, saveregs, stop_index) Call local_unwind(), which means call the _finally blocks until stop_index is reached.
nteh_usevars() Mark EH variables as used so that they don't get optimized away.


Walter Bright


Boost License 1.0