From 564147f518af5a5d8985d9e09fc3a768231f4e75 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Thu, 1 Dec 2022 12:03:09 +0100 Subject: [PATCH] ARM64: Fix code generation for IR_SLOAD with typecheck + conversion. Reported by memcorrupt. --- src/lj_asm_arm64.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lj_asm_arm64.h b/src/lj_asm_arm64.h index 4b7066f2..4e34b3be 100644 --- a/src/lj_asm_arm64.h +++ b/src/lj_asm_arm64.h @@ -1201,7 +1201,7 @@ dotypecheck: tmp = ra_scratch(as, allow); rset_clear(allow, tmp); } - if (ra_hasreg(dest) && irt_isnum(t) && !(ir->op2 & IRSLOAD_CONVERT)) + if (ra_hasreg(dest) && tmp != dest) emit_dn(as, A64I_FMOV_D_R, (dest & 31), tmp); /* Need type check, even if the load result is unused. */ asm_guardcc(as, irt_isnum(t) ? CC_LS : CC_NE);