summaryrefslogtreecommitdiff
path: root/src/lj_err.h
diff options
context:
space:
mode:
authorMike Pall <mike>2010-01-02 17:42:11 +0100
committerMike Pall <mike>2010-01-02 17:42:11 +0100
commit93ee10642e285f972daff59492c05aa04dc2aa86 (patch)
treed1bb1c4060419a5cfbfed6f5e79b042d1720ec24 /src/lj_err.h
parent8fc9430d067e255202f6b89fae7065bc50e0c668 (diff)
downloadluajit2-93ee10642e285f972daff59492c05aa04dc2aa86.tar.gz
Major rewrite of error handling to allow external/internal unwinding.
Make external unwinding the default on x64. It's mandatory on WIN64 due to the abundance of callee-saved regs. Allow piecewise internal frame unwinding and optional cleanup. Store ERRMEM, ERRERR and ERRCPP early and copy down later. Use FRAME_CP for lj_vm_resume. Add lj_vm_unwind_*_eh variants as landing pads for external unwinder. Use fastcall for lj_vm_unwind_*. Can drop r12/r13 saves in POSIX/x64 interpreter now.
Diffstat (limited to 'src/lj_err.h')
-rw-r--r--src/lj_err.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_err.h b/src/lj_err.h
index e794d44c..26375489 100644
--- a/src/lj_err.h
+++ b/src/lj_err.h
@@ -19,6 +19,7 @@ typedef enum {
LJ_FUNC GCstr *lj_err_str(lua_State *L, ErrMsg em);
LJ_FUNC_NORET void lj_err_throw(lua_State *L, int errcode);
+LJ_FUNC_NORET void lj_err_mem(lua_State *L);
LJ_FUNC_NORET void lj_err_run(lua_State *L);
LJ_FUNC_NORET void lj_err_msg(lua_State *L, ErrMsg em);
LJ_FUNC_NORET void lj_err_lex(lua_State *L, const char *src, const char *tok,