diff mbox series

[PULL,4/9] target/m68k: Use lookup_and_goto_tb for DISAS_JUMP

Message ID 20180611104935.20499-5-laurent@vivier.eu
State Accepted
Commit 8aaf7da9c3b1f282b5a123de3e87a2e6ca87f3b9
Headers show
Series [PULL,1/9] target/m68k: Use DISAS_NORETURN for exceptions | expand

Commit Message

Laurent Vivier June 11, 2018, 10:49 a.m. UTC
From: Richard Henderson <richard.henderson@linaro.org>


These are all indirect or out-of-page direct jumps.
We can indirectly chain to the next TB without going
back to the main loop.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Message-Id: <20180512050250.12774-5-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>

---
 target/m68k/translate.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.14.4
diff mbox series

Patch

diff --git a/target/m68k/translate.c b/target/m68k/translate.c
index 6238d9edc9..4b92a20c05 100644
--- a/target/m68k/translate.c
+++ b/target/m68k/translate.c
@@ -6139,8 +6139,11 @@  void gen_intermediate_code(CPUState *cs, TranslationBlock *tb)
             update_cc_op(dc);
             gen_jmp_tb(dc, 0, dc->pc);
             break;
-        default:
         case DISAS_JUMP:
+            /* We updated CC_OP and PC in gen_jmp/gen_jmp_im.  */
+            tcg_gen_lookup_and_goto_ptr();
+            break;
+        default:
         case DISAS_UPDATE:
             update_cc_op(dc);
             /* indicate that the hash table must be used to find the next TB */