Message ID | 20210621013439.1791385-24-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel/tcg: Introduce translator_use_goto_tb | expand |
On 21/06/2021 02:34, Richard Henderson wrote: > Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/sparc/translate.c | 19 +++++-------------- > 1 file changed, 5 insertions(+), 14 deletions(-) > > diff --git a/target/sparc/translate.c b/target/sparc/translate.c > index 4bfa3179f8..fb0c242606 100644 > --- a/target/sparc/translate.c > +++ b/target/sparc/translate.c > @@ -339,23 +339,14 @@ static inline TCGv gen_dest_gpr(DisasContext *dc, int reg) > } > } > > -static inline bool use_goto_tb(DisasContext *s, target_ulong pc, > - target_ulong npc) > +static bool use_goto_tb(DisasContext *s, target_ulong pc, target_ulong npc) > { > - if (unlikely(s->base.singlestep_enabled || singlestep)) { > - return false; > - } > - > -#ifndef CONFIG_USER_ONLY > - return (pc & TARGET_PAGE_MASK) == (s->base.tb->pc & TARGET_PAGE_MASK) && > - (npc & TARGET_PAGE_MASK) == (s->base.tb->pc & TARGET_PAGE_MASK); > -#else > - return true; > -#endif > + return translator_use_goto_tb(&s->base, pc) && > + translator_use_goto_tb(&s->base, npc); > } > > -static inline void gen_goto_tb(DisasContext *s, int tb_num, > - target_ulong pc, target_ulong npc) > +static void gen_goto_tb(DisasContext *s, int tb_num, > + target_ulong pc, target_ulong npc) > { > if (use_goto_tb(s, pc, npc)) { > /* jump to same page: we can use a direct jump */ Is it still worth keeping the unlikely() hint around the single-step check? I see it isn't included in your translator_use_goto_tb() implementation in patch 1. I'll trust that you know better than me the effect of removing the inline, so: Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> ATB, Mark.
diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 4bfa3179f8..fb0c242606 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -339,23 +339,14 @@ static inline TCGv gen_dest_gpr(DisasContext *dc, int reg) } } -static inline bool use_goto_tb(DisasContext *s, target_ulong pc, - target_ulong npc) +static bool use_goto_tb(DisasContext *s, target_ulong pc, target_ulong npc) { - if (unlikely(s->base.singlestep_enabled || singlestep)) { - return false; - } - -#ifndef CONFIG_USER_ONLY - return (pc & TARGET_PAGE_MASK) == (s->base.tb->pc & TARGET_PAGE_MASK) && - (npc & TARGET_PAGE_MASK) == (s->base.tb->pc & TARGET_PAGE_MASK); -#else - return true; -#endif + return translator_use_goto_tb(&s->base, pc) && + translator_use_goto_tb(&s->base, npc); } -static inline void gen_goto_tb(DisasContext *s, int tb_num, - target_ulong pc, target_ulong npc) +static void gen_goto_tb(DisasContext *s, int tb_num, + target_ulong pc, target_ulong npc) { if (use_goto_tb(s, pc, npc)) { /* jump to same page: we can use a direct jump */
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/sparc/translate.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) -- 2.25.1