aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_arm64.h
diff options
context:
space:
mode:
authorMike Pall <mike>2022-04-02 21:24:18 +0200
committerMike Pall <mike>2022-04-02 21:27:43 +0200
commit1cdff194cfa22cfe5bfc0e908b909e2dea40aa70 (patch)
tree3f32998ff919a48d2d9595e91f1d90c7807cb947 /src/lj_asm_arm64.h
parente2c312e0deb874aa5fa8ce502c08d87deb38e82f (diff)
downloadluajit-1cdff194cfa22cfe5bfc0e908b909e2dea40aa70.tar.gz
luajit-1cdff194cfa22cfe5bfc0e908b909e2dea40aa70.tar.bz2
luajit-1cdff194cfa22cfe5bfc0e908b909e2dea40aa70.zip
Add missing check for LJ_KEYINDEX in ITERN recording.
Reported by dragonorloong. Analyzed by vfprintf. #827
Diffstat (limited to 'src/lj_asm_arm64.h')
-rw-r--r--src/lj_asm_arm64.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h
index eb31b006..1f44d023 100644
--- a/src/lj_asm_arm64.h
+++ b/src/lj_asm_arm64.h
@@ -1209,7 +1209,7 @@ dotypecheck:
1209 lj_assertA(irt_isinteger(t) || irt_isnum(t), 1209 lj_assertA(irt_isinteger(t) || irt_isnum(t),
1210 "bad SLOAD type %d", irt_type(t)); 1210 "bad SLOAD type %d", irt_type(t));
1211 emit_nm(as, A64I_CMPx | A64F_SH(A64SH_LSR, 32), 1211 emit_nm(as, A64I_CMPx | A64F_SH(A64SH_LSR, 32),
1212 ra_allock(as, LJ_TISNUM << 15, allow), tmp); 1212 ra_allock(as, (ir->op2 & IRSLOAD_KEYINDEX) ? LJ_KEYINDEX : (LJ_TISNUM << 15), allow), tmp);
1213 } else if (irt_isnil(t)) { 1213 } else if (irt_isnil(t)) {
1214 emit_n(as, (A64I_CMNx^A64I_K12) | A64F_U12(1), tmp); 1214 emit_n(as, (A64I_CMNx^A64I_K12) | A64F_U12(1), tmp);
1215 } else if (irt_ispri(t)) { 1215 } else if (irt_ispri(t)) {