From: Richard Henderson Date: Wed, 16 Sep 2020 01:41:02 +0000 (-0700) Subject: target/arm: Fix sve ldr/str X-Git-Tag: v5.2.0-rc0~80^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8227b098301935ea8e0e032e7d41e5dc3e97590;p=thirdparty%2Fqemu.git target/arm: Fix sve ldr/str The mte update missed a bit when producing clean addresses. Fixes: b2aa8879b88 Signed-off-by: Richard Henderson Message-id: 20200916014102.2446323-1-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c index e4cd6b62517..c0d8a5863a2 100644 --- a/target/arm/translate-sve.c +++ b/target/arm/translate-sve.c @@ -4290,7 +4290,7 @@ static void do_ldr(DisasContext *s, uint32_t vofs, int len, int rn, int imm) for (i = 0; i < len_align; i += 8) { tcg_gen_qemu_ld_i64(t0, clean_addr, midx, MO_LEQ); tcg_gen_st_i64(t0, cpu_env, vofs + i); - tcg_gen_addi_i64(clean_addr, cpu_reg_sp(s, rn), 8); + tcg_gen_addi_i64(clean_addr, clean_addr, 8); } tcg_temp_free_i64(t0); } else { @@ -4379,7 +4379,7 @@ static void do_str(DisasContext *s, uint32_t vofs, int len, int rn, int imm) for (i = 0; i < len_align; i += 8) { tcg_gen_ld_i64(t0, cpu_env, vofs + i); tcg_gen_qemu_st_i64(t0, clean_addr, midx, MO_LEQ); - tcg_gen_addi_i64(clean_addr, cpu_reg_sp(s, rn), 8); + tcg_gen_addi_i64(clean_addr, clean_addr, 8); } tcg_temp_free_i64(t0); } else {