summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2021-05-24 22:25:26 +0200
committerMike Pall <mike>2021-05-24 22:25:26 +0200
commit2801500a26084491ae035170cad4700513790890 (patch)
tree88e7bb1a4c5ba830ca30bc1f0e14aa8d31b00cd4 /src
parent44684fa71d8af6fa8b3051c7d763bbfdcf7915d7 (diff)
downloadluajit2-2801500a26084491ae035170cad4700513790890.tar.gz
Fix use-def analysis for BC_VARG.
Reported by Ryan Lucia.
Diffstat (limited to 'src')
-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 fd7d806a..0c5e8e90 100644
--- a/src/lj_snap.c
+++ b/src/lj_snap.c
@@ -238,7 +238,7 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf,
if (!(op == BC_ISTC || op == BC_ISFC)) DEF_SLOT(bc_a(ins));
break;
case BCMbase:
- if (op >= BC_CALLM && op <= BC_VARG) {
+ if (op >= BC_CALLM && op <= BC_ITERN) {
BCReg top = (op == BC_CALLM || op == BC_CALLMT || bc_c(ins) == 0) ?
maxslot : (bc_a(ins) + bc_c(ins));
s = bc_a(ins) - ((op == BC_ITERC || op == BC_ITERN) ? 3 : 0);
@@ -248,6 +248,8 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf,
for (s = 0; s < bc_a(ins); s++) DEF_SLOT(s);
return 0;
}
+ } else if (op == BC_VARG) {
+ return maxslot; /* NYI: punt. */
} else if (op == BC_KNIL) {
for (s = bc_a(ins); s <= bc_d(ins); s++) DEF_SLOT(s);
} else if (op == BC_TSETM) {