diff options
author | Mike Pall <mike> | 2010-01-02 17:42:11 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-01-02 17:42:11 +0100 |
commit | 93ee10642e285f972daff59492c05aa04dc2aa86 (patch) | |
tree | d1bb1c4060419a5cfbfed6f5e79b042d1720ec24 /src/lj_err.h | |
parent | 8fc9430d067e255202f6b89fae7065bc50e0c668 (diff) | |
download | luajit2-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.h | 1 |
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, |