ARM64: Fix {AHUV}LOAD specialized to nil/false/true.

Reported by caohongqing.
This commit is contained in:
Mike Pall 2020-05-18 22:24:53 +02:00
parent ae20998ff5
commit 5bf0da3d7c

View File

@ -1067,7 +1067,7 @@ static void asm_ahuvload(ASMState *as, IRIns *ir)
emit_n(as, (A64I_CMNx^A64I_K12) | A64F_U12(1), tmp); emit_n(as, (A64I_CMNx^A64I_K12) | A64F_U12(1), tmp);
} else { } else {
emit_nm(as, A64I_CMPx | A64F_SH(A64SH_LSR, 32), emit_nm(as, A64I_CMPx | A64F_SH(A64SH_LSR, 32),
ra_allock(as, (irt_toitype(ir->t) << 15) | 0x7fff, allow), tmp); ra_allock(as, (irt_toitype(ir->t) << 15) | 0x7fff, gpr), tmp);
} }
if (ofs & FUSE_REG) if (ofs & FUSE_REG)
emit_dnm(as, (A64I_LDRx^A64I_LS_R)|A64I_LS_UXTWx|A64I_LS_SH, tmp, idx, (ofs & 31)); emit_dnm(as, (A64I_LDRx^A64I_LS_R)|A64I_LS_UXTWx|A64I_LS_SH, tmp, idx, (ofs & 31));