Message ID | 20210621013439.1791385-19-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel/tcg: Introduce translator_use_goto_tb | expand |
On Mon, Jun 21, 2021 at 11:47 AM 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-riscv@nongnu.org > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/translate.c | 20 +------------------- > 1 file changed, 1 insertion(+), 19 deletions(-) > > diff --git a/target/riscv/translate.c b/target/riscv/translate.c > index c6e8739614..ecd3764338 100644 > --- a/target/riscv/translate.c > +++ b/target/riscv/translate.c > @@ -168,29 +168,11 @@ static void gen_exception_inst_addr_mis(DisasContext *ctx) > generate_exception_mtval(ctx, RISCV_EXCP_INST_ADDR_MIS); > } > > -static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest) > -{ > - if (unlikely(ctx->base.singlestep_enabled)) { > - return false; > - } > - > -#ifndef CONFIG_USER_ONLY > - return (ctx->base.tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK); > -#else > - return true; > -#endif > -} > - > static void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) > { > - if (use_goto_tb(ctx, dest)) { > - /* chaining is only allowed when the jump is to the same page */ > + if (translator_use_goto_tb(&ctx->base, dest)) { > tcg_gen_goto_tb(n); > tcg_gen_movi_tl(cpu_pc, dest); > - > - /* No need to check for single stepping here as use_goto_tb() will > - * return false in case of single stepping. > - */ > tcg_gen_exit_tb(ctx->base.tb, n); > } else { > tcg_gen_movi_tl(cpu_pc, dest); > -- > 2.25.1 > >
diff --git a/target/riscv/translate.c b/target/riscv/translate.c index c6e8739614..ecd3764338 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -168,29 +168,11 @@ static void gen_exception_inst_addr_mis(DisasContext *ctx) generate_exception_mtval(ctx, RISCV_EXCP_INST_ADDR_MIS); } -static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest) -{ - if (unlikely(ctx->base.singlestep_enabled)) { - return false; - } - -#ifndef CONFIG_USER_ONLY - return (ctx->base.tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK); -#else - return true; -#endif -} - static void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) { - if (use_goto_tb(ctx, dest)) { - /* chaining is only allowed when the jump is to the same page */ + if (translator_use_goto_tb(&ctx->base, dest)) { tcg_gen_goto_tb(n); tcg_gen_movi_tl(cpu_pc, dest); - - /* No need to check for single stepping here as use_goto_tb() will - * return false in case of single stepping. - */ tcg_gen_exit_tb(ctx->base.tb, n); } else { tcg_gen_movi_tl(cpu_pc, dest);
Just use translator_use_goto_tb directly at the one call site, rather than maintaining a local wrapper. Cc: qemu-riscv@nongnu.org Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/riscv/translate.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) -- 2.25.1