Message ID | 20210630183226.3290849-8-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel/tcg: Introduce translator_use_goto_tb | expand |
On Wed, 30 Jun 2021 at 19:36, Richard Henderson <richard.henderson@linaro.org> wrote: > > Just use translator_use_goto_tb directly at the one call site, > rather than maintaining a local wrapper. > > Cc: qemu-arm@nongnu.org > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/arm/translate.c | 12 +----------- > 1 file changed, 1 insertion(+), 11 deletions(-) Now we end up checking for the single-stepping case twice: once in gen_jmp_tb() etc, and then again indirectly in gen_goto_tb(), because all the callsites to gen_goto_tb() carefully avoid calling it for the is-singlestepping case. That suggests there's more cleanup possible here. For this patch, I guess Reviewed-by: Peter Maydell <peter.maydell@linaro.org> thanks -- PMM
diff --git a/target/arm/translate.c b/target/arm/translate.c index 8cd31feeaa..87c3c09df5 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -2509,16 +2509,6 @@ static int disas_dsp_insn(DisasContext *s, uint32_t insn) return 1; } -static inline bool use_goto_tb(DisasContext *s, target_ulong dest) -{ -#ifndef CONFIG_USER_ONLY - return (s->base.tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK) || - ((s->base.pc_next - 1) & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK); -#else - return true; -#endif -} - static void gen_goto_ptr(void) { tcg_gen_lookup_and_goto_ptr(); @@ -2530,7 +2520,7 @@ static void gen_goto_ptr(void) */ static void gen_goto_tb(DisasContext *s, int n, target_ulong dest) { - if (use_goto_tb(s, dest)) { + if (translator_use_goto_tb(&s->base, dest)) { tcg_gen_goto_tb(n); gen_set_pc_im(s, dest); tcg_gen_exit_tb(s->base.tb, n);
Just use translator_use_goto_tb directly at the one call site, rather than maintaining a local wrapper. Cc: qemu-arm@nongnu.org Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/arm/translate.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) -- 2.25.1