aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_snap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lj_snap.c b/src/lj_snap.c
index fee68ba5..8efe37fd 100644
--- a/src/lj_snap.c
+++ b/src/lj_snap.c
@@ -276,7 +276,7 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf,
276 if (!(op == BC_ISTC || op == BC_ISFC)) DEF_SLOT(bc_a(ins)); 276 if (!(op == BC_ISTC || op == BC_ISFC)) DEF_SLOT(bc_a(ins));
277 break; 277 break;
278 case BCMbase: 278 case BCMbase:
279 if (op >= BC_CALLM && op <= BC_VARG) { 279 if (op >= BC_CALLM && op <= BC_ITERN) {
280 BCReg top = (op == BC_CALLM || op == BC_CALLMT || bc_c(ins) == 0) ? 280 BCReg top = (op == BC_CALLM || op == BC_CALLMT || bc_c(ins) == 0) ?
281 maxslot : (bc_a(ins) + bc_c(ins)+LJ_FR2); 281 maxslot : (bc_a(ins) + bc_c(ins)+LJ_FR2);
282 if (LJ_FR2) DEF_SLOT(bc_a(ins)+1); 282 if (LJ_FR2) DEF_SLOT(bc_a(ins)+1);
@@ -287,6 +287,8 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf,
287 for (s = 0; s < bc_a(ins); s++) DEF_SLOT(s); 287 for (s = 0; s < bc_a(ins); s++) DEF_SLOT(s);
288 return 0; 288 return 0;
289 } 289 }
290 } else if (op == BC_VARG) {
291 return maxslot; /* NYI: punt. */
290 } else if (op == BC_KNIL) { 292 } else if (op == BC_KNIL) {
291 for (s = bc_a(ins); s <= bc_d(ins); s++) DEF_SLOT(s); 293 for (s = bc_a(ins); s <= bc_d(ins); s++) DEF_SLOT(s);
292 } else if (op == BC_TSETM) { 294 } else if (op == BC_TSETM) {