diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_snap.c | 4 |
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) { |