From: Mike Pall Date: Wed, 3 Jul 2024 21:42:38 +0000 (+0200) Subject: Merge branch 'master' into v2.1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6885efb73ea73b053804d4af9a475f14253645da;p=thirdparty%2FLuaJIT.git Merge branch 'master' into v2.1 --- 6885efb73ea73b053804d4af9a475f14253645da diff --cc src/lj_trace.c index a5e316e1,8385f3d1..f384cbdb --- a/src/lj_trace.c +++ b/src/lj_trace.c @@@ -905,18 -788,17 +905,20 @@@ int LJ_FASTCALL lj_trace_exit(jit_Stat exd.J = J; exd.exptr = exptr; errcode = lj_vm_cpcall(L, NULL, &exd, trace_exit_cp); - if (errcode) + if (errcode) { + setcframe_pc(cframe_raw(L->cframe), L); /* Point to any valid memory. */ return -errcode; /* Return negated error code. */ + } - lj_vmevent_send(L, TEXIT, - lj_state_checkstack(L, 4+RID_NUM_GPR+RID_NUM_FPR+LUA_MINSTACK); - setintV(L->top++, J->parent); - setintV(L->top++, J->exitno); - trace_exit_regs(L, ex); - ); + if (exitcode) copyTV(L, L->top++, &exiterr); /* Anchor the error object. */ + + if (!(LJ_HASPROFILE && (G(L)->hookmask & HOOK_PROFILE))) + lj_vmevent_send(L, TEXIT, + lj_state_checkstack(L, 4+RID_NUM_GPR+RID_NUM_FPR+LUA_MINSTACK); + setintV(L->top++, J->parent); + setintV(L->top++, J->exitno); + trace_exit_regs(L, ex); + ); pc = exd.pc; cf = cframe_raw(L->cframe);