From 7dfe3f53bc606d2c5bb81e5828e6cf32225f6b72 Mon Sep 17 00:00:00 2001 From: Evgenii Stepanov Date: Tue, 27 Aug 2019 16:14:37 -0700 Subject: [PATCH 4/4] Fix pre/post-index confusion in disas_ldst_tag. --- target/arm/translate-a64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index a85bae1f27..5728b68ccc 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -3679,7 +3679,7 @@ static void disas_ldst_tag(DisasContext *s, uint32_t insn) } dirty_addr = read_cpu_reg_sp(s, rn, true); - if (index <= 0) { + if (index >= 0) { /* pre-index or signed offset */ tcg_gen_addi_i64(dirty_addr, dirty_addr, offset); } @@ -3726,7 +3726,7 @@ static void disas_ldst_tag(DisasContext *s, uint32_t insn) if (index != 0) { /* pre-index or post-index */ - if (index > 0) { + if (index < 0) { /* post-index */ tcg_gen_addi_i64(dirty_addr, dirty_addr, offset); } -- 2.23.0.700.g56cf767bdb-goog