[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 08/28] target/avr: Use translator_use_goto_tb
From: |
Richard Henderson |
Subject: |
[PATCH v2 08/28] target/avr: Use translator_use_goto_tb |
Date: |
Wed, 30 Jun 2021 11:32:06 -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.
Cc: Michael Rolnik <mrolnik@gmail.com>
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 v2 00/28] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 01/28] accel/tcg: Introduce translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 02/28] target/alpha: Remove use_exit_tb, Richard Henderson, 2021/06/30
- [PATCH v2 06/28] target/arm: Use translator_use_goto_tb for aarch64, Richard Henderson, 2021/06/30
- [PATCH v2 09/28] target/avr: Mark some helpers noreturn, Richard Henderson, 2021/06/30
- [PATCH v2 05/28] target/arm: Use gen_jmp for ISB and SB, Richard Henderson, 2021/06/30
- [PATCH v2 03/28] target/alpha: Remove in_superpage, Richard Henderson, 2021/06/30
- [PATCH v2 08/28] target/avr: Use translator_use_goto_tb,
Richard Henderson <=
- [PATCH v2 04/28] target/alpha: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 15/28] target/mips: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 12/28] target/i386: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 17/28] target/nios2: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 16/28] target/mips: Fix missing else in gen_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 10/28] target/cris: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 11/28] target/hppa: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 13/28] target/m68k: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 14/28] target/microblaze: Use translator_use_goto_tb, Richard Henderson, 2021/06/30
- [PATCH v2 19/28] target/ppc: Use translator_use_goto_tb, Richard Henderson, 2021/06/30