diff mbox series

[v2,07/28] target/arm: Use translator_use_goto_tb for aarch32

Message ID 20210630183226.3290849-8-richard.henderson@linaro.org
State Superseded
Headers show
Series accel/tcg: Introduce translator_use_goto_tb | expand

Commit Message

Richard Henderson June 30, 2021, 6:32 p.m. UTC
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

Comments

Peter Maydell July 8, 2021, 12:14 p.m. UTC | #1
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 mbox series

Patch

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);