diff --git a/src/lj_asm.c b/src/lj_asm.c index a8cb3dd0..bff6c9bc 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c @@ -3045,8 +3045,8 @@ static void asm_tail_sync(ASMState *as) } emit_movmroi(as, RID_BASE, ofs+4, irt_toitype(ir->t)); } - } else if (s > secondbase) { - emit_movmroi(as, RID_BASE, ofs+4, LJ_TNIL); + } else { + lua_assert(!(s > secondbase)); } checkmclim(as); } diff --git a/src/lj_record.c b/src/lj_record.c index 329cbdc5..6af25ccb 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -426,7 +426,7 @@ static BCReg rec_mm_prep(jit_State *J, ASMFunction cont) #endif J->base[top] = emitir(IRTG(IR_FRAME, IRT_PTR), trcont, trcont); for (s = J->maxslot; s < top; s++) - J->base[s] = 0; + J->base[s] = TREF_NIL; return top+1; } diff --git a/src/lj_snap.c b/src/lj_snap.c index c2aff3db..f262e1c9 100644 --- a/src/lj_snap.c +++ b/src/lj_snap.c @@ -259,8 +259,8 @@ void lj_snap_restore(jit_State *J, void *exptr) } } } - } else if (newbase) { - setnilV(o); /* Clear unreferenced slots of newly added frames. */ + } else { + lua_assert(!newbase); } } if (newbase) L->base = newbase;