[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v8 54/68] target/nios2: Use gen_goto_tb for DISAS_TOO_MANY
From: |
Richard Henderson |
Subject: |
[PATCH v8 54/68] target/nios2: Use gen_goto_tb for DISAS_TOO_MANY |
Date: |
Fri, 22 Apr 2022 09:52:24 -0700 |
Depending on the reason for ending the TB, we can chain
to the next TB because the PC is constant.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220421151735.31996-51-richard.henderson@linaro.org>
---
target/nios2/translate.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/target/nios2/translate.c b/target/nios2/translate.c
index a55270cefa..87f3e57d4c 100644
--- a/target/nios2/translate.c
+++ b/target/nios2/translate.c
@@ -905,8 +905,11 @@ static void nios2_tr_tb_stop(DisasContextBase *dcbase,
CPUState *cs)
/* Indicate where the next block should start */
switch (dc->base.is_jmp) {
case DISAS_TOO_MANY:
+ gen_goto_tb(dc, 0, dc->base.pc_next);
+ break;
+
case DISAS_UPDATE:
- /* Save the current PC back into the CPU register */
+ /* Save the current PC, and return to the main loop. */
tcg_gen_movi_tl(cpu_pc, dc->base.pc_next);
tcg_gen_exit_tb(NULL, 0);
break;
--
2.34.1
- [PATCH v8 43/68] target/nios2: Split out named structs for [IRJ]_TYPE, (continued)
- [PATCH v8 43/68] target/nios2: Split out named structs for [IRJ]_TYPE, Richard Henderson, 2022/04/22
- [PATCH v8 44/68] target/nios2: Split out helpers for gen_i_cmpxx, Richard Henderson, 2022/04/22
- [PATCH v8 45/68] target/nios2: Split out helpers for gen_i_math_logic, Richard Henderson, 2022/04/22
- [PATCH v8 46/68] target/nios2: Split out helpers for gen_r_math_logic, Richard Henderson, 2022/04/22
- [PATCH v8 47/68] target/nios2: Split out helpers for gen_rr_mul_high, Richard Henderson, 2022/04/22
- [PATCH v8 48/68] target/nios2: Split out helpers for gen_rr_shift, Richard Henderson, 2022/04/22
- [PATCH v8 49/68] target/nios2: Introduce dest_gpr, Richard Henderson, 2022/04/22
- [PATCH v8 51/68] target/nios2: Enable unaligned traps for system mode, Richard Henderson, 2022/04/22
- [PATCH v8 52/68] target/nios2: Create gen_jumpr, Richard Henderson, 2022/04/22
- [PATCH v8 50/68] target/nios2: Drop CR_STATUS_EH from tb->flags, Richard Henderson, 2022/04/22
- [PATCH v8 54/68] target/nios2: Use gen_goto_tb for DISAS_TOO_MANY,
Richard Henderson <=
- [PATCH v8 53/68] target/nios2: Hoist set of is_jmp into gen_goto_tb, Richard Henderson, 2022/04/22
- [PATCH v8 56/68] target/nios2: Implement Misaligned destination exception, Richard Henderson, 2022/04/22
- [PATCH v8 55/68] target/nios2: Use tcg_gen_lookup_and_goto_ptr, Richard Henderson, 2022/04/22
- [PATCH v8 57/68] target/nios2: Introduce shadow register sets, Richard Henderson, 2022/04/22
- [PATCH v8 59/68] target/nios2: Update helper_eret for shadow registers, Richard Henderson, 2022/04/22
- [PATCH v8 58/68] target/nios2: Implement rdprs, wrprs, Richard Henderson, 2022/04/22
- [PATCH v8 60/68] target/nios2: Implement EIC interrupt processing, Richard Henderson, 2022/04/22
- [PATCH v8 61/68] target/nios2: Advance pc when raising exceptions, Richard Henderson, 2022/04/22
- [PATCH v8 62/68] linux-user/nios2: Handle various SIGILL exceptions, Richard Henderson, 2022/04/22
- [PATCH v8 63/68] hw/intc: Vectored Interrupt Controller (VIC), Richard Henderson, 2022/04/22