diff options
author | Mike Pall <mike> | 2022-04-02 21:24:18 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2022-04-02 21:27:43 +0200 |
commit | 1cdff194cfa22cfe5bfc0e908b909e2dea40aa70 (patch) | |
tree | 3f32998ff919a48d2d9595e91f1d90c7807cb947 /src/lj_asm_arm64.h | |
parent | e2c312e0deb874aa5fa8ce502c08d87deb38e82f (diff) | |
download | luajit-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.h | 2 |
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)) { |