aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2018-05-11 22:02:45 -0700
committerLaurent Vivier <laurent@vivier.eu>2018-06-11 11:43:11 +0200
commit8aaf7da9c3b1f282b5a123de3e87a2e6ca87f3b9 (patch)
treec43e1d9098713d4efc21603d28ec2eacb4737e38
parent707ddb5ac6f91309ff6ed6bec988ed8100846f50 (diff)
target/m68k: Use lookup_and_goto_tb for DISAS_JUMP
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>
-rw-r--r--target/m68k/translate.c5
1 files changed, 4 insertions, 1 deletions
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 */