[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 13/41] target/avr: Use translator_use_goto_tb
From: |
Richard Henderson |
Subject: |
[PATCH 13/41] target/avr: Use translator_use_goto_tb |
Date: |
Sat, 10 Jul 2021 08:31:15 -0700 |
Single stepping is not the only reason not to use goto_tb.
If goto_tb is disallowed, and single-stepping is not enabled,
then use tcg_gen_lookup_and_goto_tb to indirectly chain.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/avr/translate.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/target/avr/translate.c b/target/avr/translate.c
index c06ce45bc7..8237a03c23 100644
--- a/target/avr/translate.c
+++ b/target/avr/translate.c
@@ -1083,14 +1083,17 @@ static void gen_goto_tb(DisasContext *ctx, int n,
target_ulong dest)
{
const TranslationBlock *tb = ctx->base.tb;
- if (!ctx->base.singlestep_enabled) {
+ if (translator_use_goto_tb(&ctx->base, dest)) {
tcg_gen_goto_tb(n);
tcg_gen_movi_i32(cpu_pc, dest);
tcg_gen_exit_tb(tb, n);
} else {
tcg_gen_movi_i32(cpu_pc, dest);
- gen_helper_debug(cpu_env);
- tcg_gen_exit_tb(NULL, 0);
+ if (ctx->base.singlestep_enabled) {
+ gen_helper_debug(cpu_env);
+ } else {
+ tcg_gen_lookup_and_goto_ptr();
+ }
}
ctx->base.is_jmp = DISAS_NORETURN;
}
--
2.25.1
- [PATCH 06/41] accel/tcg: Introduce translator_use_goto_tb, (continued)
- [PATCH 06/41] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 05/41] tcg: Move tb_phys_invalidate_count to tb_ctx, Richard Henderson, 2021/07/10
- [PATCH 07/41] target/alpha: Remove use_exit_tb, Richard Henderson, 2021/07/10
- [PATCH 08/41] target/alpha: Remove in_superpage, Richard Henderson, 2021/07/10
- [PATCH 09/41] target/alpha: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 10/41] target/arm: Use DISAS_TOO_MANY for ISB and SB, Richard Henderson, 2021/07/10
- [PATCH 11/41] target/arm: Use translator_use_goto_tb for aarch64, Richard Henderson, 2021/07/10
- [PATCH 12/41] target/arm: Use translator_use_goto_tb for aarch32, Richard Henderson, 2021/07/10
- [PATCH 14/41] target/avr: Mark some helpers noreturn, Richard Henderson, 2021/07/10
- [PATCH 18/41] target/m68k: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 13/41] target/avr: Use translator_use_goto_tb,
Richard Henderson <=
- [PATCH 17/41] target/i386: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 15/41] target/cris: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 16/41] target/hppa: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 20/41] target/mips: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 21/41] target/mips: Fix missing else in gen_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 19/41] target/microblaze: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 22/41] target/nios2: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 23/41] target/openrisc: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 24/41] target/ppc: Use translator_use_goto_tb, Richard Henderson, 2021/07/10
- [PATCH 27/41] target/s390x: Use translator_use_goto_tb, Richard Henderson, 2021/07/10