@@ -309,8 +309,8 @@ int lj_trace_flushall(lua_State *L)
309309 /* Free the whole machine code and invalidate all exit stub groups. */
310310 lj_mcode_free (J );
311311 memset (J -> exitstubgroup , 0 , sizeof (J -> exitstubgroup ));
312- lj_vmevent_send (L , TRACE ,
313- setstrV (L , L -> top ++ , lj_str_newlit (L , "flush" ));
312+ lj_vmevent_send (J2G ( J ) , TRACE ,
313+ setstrV (V , V -> top ++ , lj_str_newlit (V , "flush" ));
314314 );
315315 return 0 ;
316316}
@@ -416,7 +416,6 @@ static void penalty_pc(jit_State *J, GCproto *pt, BCIns *pc, TraceError e)
416416/* Start tracing. */
417417static void trace_start (jit_State * J )
418418{
419- lua_State * L ;
420419 TraceNo traceno ;
421420
422421 if ((J -> pt -> flags & PROTO_NOJIT )) { /* JIT disabled for this proto? */
@@ -460,20 +459,19 @@ static void trace_start(jit_State *J)
460459 J -> ktrace = 0 ;
461460 setgcref (J -> cur .startpt , obj2gco (J -> pt ));
462461
463- L = J -> L ;
464- lj_vmevent_send (L , TRACE ,
465- setstrV (L , L -> top ++ , lj_str_newlit (L , "start" ));
466- setintV (L -> top ++ , traceno );
467- setfuncV (L , L -> top ++ , J -> fn );
468- setintV (L -> top ++ , proto_bcpos (J -> pt , J -> pc ));
462+ lj_vmevent_send (J2G (J ), TRACE ,
463+ setstrV (V , V -> top ++ , lj_str_newlit (V , "start" ));
464+ setintV (V -> top ++ , traceno );
465+ setfuncV (V , V -> top ++ , J -> fn );
466+ setintV (V -> top ++ , proto_bcpos (J -> pt , J -> pc ));
469467 if (J -> parent ) {
470- setintV (L -> top ++ , J -> parent );
471- setintV (L -> top ++ , J -> exitno );
468+ setintV (V -> top ++ , J -> parent );
469+ setintV (V -> top ++ , J -> exitno );
472470 } else {
473471 BCOp op = bc_op (* J -> pc );
474472 if (op == BC_CALLM || op == BC_CALL || op == BC_ITERC ) {
475- setintV (L -> top ++ , J -> exitno ); /* Parent of stitched trace. */
476- setintV (L -> top ++ , -1 );
473+ setintV (V -> top ++ , J -> exitno ); /* Parent of stitched trace. */
474+ setintV (V -> top ++ , -1 );
477475 }
478476 }
479477 );
@@ -488,7 +486,6 @@ static void trace_stop(jit_State *J)
488486 GCproto * pt = & gcref (J -> cur .startpt )-> pt ;
489487 TraceNo traceno = J -> cur .traceno ;
490488 GCtrace * T = J -> curfinal ;
491- lua_State * L ;
492489
493490 switch (op ) {
494491 case BC_FORL :
@@ -544,11 +541,10 @@ static void trace_stop(jit_State *J)
544541 J -> postproc = LJ_POST_NONE ;
545542 trace_save (J , T );
546543
547- L = J -> L ;
548- lj_vmevent_send (L , TRACE ,
549- setstrV (L , L -> top ++ , lj_str_newlit (L , "stop" ));
550- setintV (L -> top ++ , traceno );
551- setfuncV (L , L -> top ++ , J -> fn );
544+ lj_vmevent_send (J2G (J ), TRACE ,
545+ setstrV (V , V -> top ++ , lj_str_newlit (V , "stop" ));
546+ setintV (V -> top ++ , traceno );
547+ setfuncV (V , V -> top ++ , J -> fn );
552548 );
553549}
554550
@@ -605,18 +601,17 @@ static int trace_abort(jit_State *J)
605601 /* Is there anything to abort? */
606602 traceno = J -> cur .traceno ;
607603 if (traceno ) {
608- ptrdiff_t errobj = savestack (L , L -> top - 1 ); /* Stack may be resized. */
609604 J -> cur .link = 0 ;
610605 J -> cur .linktype = LJ_TRLINK_NONE ;
611- lj_vmevent_send (L , TRACE ,
606+ lj_vmevent_send (J2G ( J ) , TRACE ,
612607 cTValue * bot = tvref (L -> stack )+ LJ_FR2 ;
613608 cTValue * frame ;
614609 const BCIns * pc ;
615610 BCPos pos = 0 ;
616- setstrV (L , L -> top ++ , lj_str_newlit (L , "abort" ));
617- setintV (L -> top ++ , traceno );
611+ setstrV (V , V -> top ++ , lj_str_newlit (V , "abort" ));
612+ setintV (V -> top ++ , traceno );
618613 /* Find original Lua function call to generate a better error message. */
619- for (frame = J -> L -> base - 1 , pc = J -> pc ; ; frame = frame_prev (frame )) {
614+ for (frame = L -> base - 1 , pc = J -> pc ; ; frame = frame_prev (frame )) {
620615 if (isluafunc (frame_func (frame ))) {
621616 pos = proto_bcpos (funcproto (frame_func (frame )), pc );
622617 break ;
@@ -628,10 +623,10 @@ static int trace_abort(jit_State *J)
628623 pc = frame_pc (frame ) - 1 ;
629624 }
630625 }
631- setfuncV (L , L -> top ++ , frame_func (frame ));
632- setintV (L -> top ++ , pos );
633- copyTV (L , L -> top ++ , restorestack ( L , errobj ) );
634- copyTV (L , L -> top ++ , & J -> errinfo );
626+ setfuncV (V , V -> top ++ , frame_func (frame ));
627+ setintV (V -> top ++ , pos );
628+ copyTV (V , V -> top ++ , L -> top - 1 );
629+ copyTV (V , V -> top ++ , & J -> errinfo );
635630 );
636631 /* Drop aborted trace after the vmevent (which may still access it). */
637632 setgcrefnull (J -> trace [traceno ]);
@@ -678,16 +673,16 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud)
678673 case LJ_TRACE_RECORD :
679674 trace_pendpatch (J , 0 );
680675 setvmstate (J2G (J ), RECORD );
681- lj_vmevent_send_ (L , RECORD ,
676+ lj_vmevent_send_ (J2G ( J ) , RECORD ,
682677 /* Save/restore state for trace recorder. */
683678 TValue savetv = J2G (J )-> tmptv ;
684679 TValue savetv2 = J2G (J )-> tmptv2 ;
685680 TraceNo parent = J -> parent ;
686681 ExitNo exitno = J -> exitno ;
687- setintV (L -> top ++ , J -> cur .traceno );
688- setfuncV (L , L -> top ++ , J -> fn );
689- setintV (L -> top ++ , J -> pt ? (int32_t )proto_bcpos (J -> pt , J -> pc ) : -1 );
690- setintV (L -> top ++ , J -> framedepth );
682+ setintV (V -> top ++ , J -> cur .traceno );
683+ setfuncV (V , V -> top ++ , J -> fn );
684+ setintV (V -> top ++ , J -> pt ? (int32_t )proto_bcpos (J -> pt , J -> pc ) : -1 );
685+ setintV (V -> top ++ , J -> framedepth );
691686 ,
692687 J2G (J )-> tmptv = savetv ;
693688 J2G (J )-> tmptv2 = savetv2 ;
@@ -837,23 +832,23 @@ static TValue *trace_exit_gc_cp(lua_State *L, lua_CFunction dummy, void *unused)
837832
838833#ifndef LUAJIT_DISABLE_VMEVENT
839834/* Push all registers from exit state. */
840- static void trace_exit_regs (lua_State * L , ExitState * ex )
835+ static void trace_exit_regs (lua_State * V , ExitState * ex )
841836{
842837 int32_t i ;
843- setintV (L -> top ++ , RID_NUM_GPR );
844- setintV (L -> top ++ , RID_NUM_FPR );
838+ setintV (V -> top ++ , RID_NUM_GPR );
839+ setintV (V -> top ++ , RID_NUM_FPR );
845840 for (i = 0 ; i < RID_NUM_GPR ; i ++ ) {
846841 if (sizeof (ex -> gpr [i ]) == sizeof (int32_t ))
847- setintV (L -> top ++ , (int32_t )ex -> gpr [i ]);
842+ setintV (V -> top ++ , (int32_t )ex -> gpr [i ]);
848843 else
849- setnumV (L -> top ++ , (lua_Number )ex -> gpr [i ]);
844+ setnumV (V -> top ++ , (lua_Number )ex -> gpr [i ]);
850845 }
851846#if !LJ_SOFTFP
852847 for (i = 0 ; i < RID_NUM_FPR ; i ++ ) {
853- setnumV (L -> top , ex -> fpr [i ]);
854- if (LJ_UNLIKELY (tvisnan (L -> top )))
855- setnanV (L -> top );
856- L -> top ++ ;
848+ setnumV (V -> top , ex -> fpr [i ]);
849+ if (LJ_UNLIKELY (tvisnan (V -> top )))
850+ setnanV (V -> top );
851+ V -> top ++ ;
857852 }
858853#endif
859854}
@@ -895,6 +890,8 @@ int LJ_FASTCALL lj_trace_exit(jit_State *J, void *exptr)
895890
896891#ifdef EXITSTATE_PCREG
897892 J -> parent = trace_exit_find (J , (MCode * )(intptr_t )ex -> gpr [EXITSTATE_PCREG ]);
893+ #else
894+ UNUSED (ex );
898895#endif
899896 T = traceref (J , J -> parent ); UNUSED (T );
900897#ifdef EXITSTATE_CHECKEXIT
@@ -915,11 +912,11 @@ int LJ_FASTCALL lj_trace_exit(jit_State *J, void *exptr)
915912 if (exitcode ) copyTV (L , L -> top ++ , & exiterr ); /* Anchor the error object. */
916913
917914 if (!(LJ_HASPROFILE && (G (L )-> hookmask & HOOK_PROFILE )))
918- lj_vmevent_send (L , TEXIT ,
919- lj_state_checkstack (L , 4 + RID_NUM_GPR + RID_NUM_FPR + LUA_MINSTACK );
920- setintV (L -> top ++ , J -> parent );
921- setintV (L -> top ++ , J -> exitno );
922- trace_exit_regs (L , ex );
915+ lj_vmevent_send (G ( L ) , TEXIT ,
916+ lj_state_checkstack (V , 4 + RID_NUM_GPR + RID_NUM_FPR + LUA_MINSTACK );
917+ setintV (V -> top ++ , J -> parent );
918+ setintV (V -> top ++ , J -> exitno );
919+ trace_exit_regs (V , ex );
923920 );
924921
925922 pc = exd .pc ;
0 commit comments