[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 13/20] target/arm: Use insn_start from DisasContextBase
From: |
Richard Henderson |
Subject: |
[PULL v2 13/20] target/arm: Use insn_start from DisasContextBase |
Date: |
Tue, 9 Apr 2024 09:35:56 -1000 |
To keep the multiple update check, replace insn_start
with insn_start_updated.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/tcg/translate.h | 12 ++++++------
target/arm/tcg/translate-a64.c | 2 +-
target/arm/tcg/translate.c | 2 +-
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h
index 93be745cf3..dc66ff2190 100644
--- a/target/arm/tcg/translate.h
+++ b/target/arm/tcg/translate.h
@@ -165,10 +165,10 @@ typedef struct DisasContext {
uint8_t gm_blocksize;
/* True if this page is guarded. */
bool guarded_page;
+ /* True if the current insn_start has been updated. */
+ bool insn_start_updated;
/* Bottom two bits of XScale c15_cpar coprocessor access control reg */
int c15_cpar;
- /* TCG op of the current insn_start. */
- TCGOp *insn_start;
/* Offset from VNCR_EL2 when FEAT_NV2 redirects this reg to memory */
uint32_t nv2_redirect_offset;
} DisasContext;
@@ -276,10 +276,10 @@ static inline void disas_set_insn_syndrome(DisasContext
*s, uint32_t syn)
syn &= ARM_INSN_START_WORD2_MASK;
syn >>= ARM_INSN_START_WORD2_SHIFT;
- /* We check and clear insn_start_idx to catch multiple updates. */
- assert(s->insn_start != NULL);
- tcg_set_insn_start_param(s->insn_start, 2, syn);
- s->insn_start = NULL;
+ /* Check for multiple updates. */
+ assert(!s->insn_start_updated);
+ s->insn_start_updated = true;
+ tcg_set_insn_start_param(s->base.insn_start, 2, syn);
}
static inline int curr_insn_len(DisasContext *s)
diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c
index 340265beb0..2666d52711 100644
--- a/target/arm/tcg/translate-a64.c
+++ b/target/arm/tcg/translate-a64.c
@@ -14179,7 +14179,7 @@ static void aarch64_tr_insn_start(DisasContextBase
*dcbase, CPUState *cpu)
pc_arg &= ~TARGET_PAGE_MASK;
}
tcg_gen_insn_start(pc_arg, 0, 0);
- dc->insn_start = tcg_last_op();
+ dc->insn_start_updated = false;
}
static void aarch64_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)
diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c
index 69585e6003..dc49a8d806 100644
--- a/target/arm/tcg/translate.c
+++ b/target/arm/tcg/translate.c
@@ -9273,7 +9273,7 @@ static void arm_tr_insn_start(DisasContextBase *dcbase,
CPUState *cpu)
condexec_bits = (dc->condexec_cond << 4) | (dc->condexec_mask >> 1);
}
tcg_gen_insn_start(pc_arg, condexec_bits, 0);
- dc->insn_start = tcg_last_op();
+ dc->insn_start_updated = false;
}
static bool arm_check_kernelpage(DisasContext *dc)
--
2.34.1
- [PULL v2 04/20] target/hppa: Fix IIAOQ, IIASQ for pa2.0, (continued)
- [PULL v2 04/20] target/hppa: Fix IIAOQ, IIASQ for pa2.0, Richard Henderson, 2024/04/09
- [PULL v2 05/20] target/sh4: mac.w: memory accesses are 16-bit words, Richard Henderson, 2024/04/09
- [PULL v2 06/20] target/sh4: Merge mach and macl into a union, Richard Henderson, 2024/04/09
- [PULL v2 07/20] target/sh4: Fix mac.l with saturation enabled, Richard Henderson, 2024/04/09
- [PULL v2 08/20] target/sh4: Fix mac.w with saturation enabled, Richard Henderson, 2024/04/09
- [PULL v2 09/20] target/sh4: add missing CHECK_NOT_DELAY_SLOT, Richard Henderson, 2024/04/09
- [PULL v2 10/20] target/m68k: Map FPU exceptions to FPSR register, Richard Henderson, 2024/04/09
- [PULL v2 11/20] tcg: Add TCGContext.emit_before_op, Richard Henderson, 2024/04/09
- [PULL v2 12/20] accel/tcg: Add insn_start to DisasContextBase, Richard Henderson, 2024/04/09
- [PULL v2 14/20] target/hppa: Use insn_start from DisasContextBase, Richard Henderson, 2024/04/09
- [PULL v2 13/20] target/arm: Use insn_start from DisasContextBase,
Richard Henderson <=
- [PULL v2 15/20] target/i386: Preserve DisasContextBase.insn_start across rewind, Richard Henderson, 2024/04/09
- [PULL v2 16/20] target/microblaze: Use insn_start from DisasContextBase, Richard Henderson, 2024/04/09
- [PULL v2 17/20] target/riscv: Use insn_start from DisasContextBase, Richard Henderson, 2024/04/09
- [PULL v2 18/20] target/s390x: Use insn_start from DisasContextBase, Richard Henderson, 2024/04/09
- [PULL v2 19/20] accel/tcg: Improve can_do_io management, Richard Henderson, 2024/04/09
- [PULL v2 20/20] linux-user: Preserve unswapped siginfo_t for strace, Richard Henderson, 2024/04/09
- Re: [PULL v2 00/20] misc patch queue, Peter Maydell, 2024/04/10
- Re: [PULL v2 00/20] misc patch queue, Michael Tokarev, 2024/04/10