diff options
author | Richard Henderson | 2018-05-12 07:02:45 +0200 |
---|---|---|
committer | Laurent Vivier | 2018-06-11 11:43:11 +0200 |
commit | 8aaf7da9c3b1f282b5a123de3e87a2e6ca87f3b9 (patch) | |
tree | c43e1d9098713d4efc21603d28ec2eacb4737e38 /target/m68k/translate.c | |
parent | target/m68k: Remove DISAS_JUMP_NEXT as unused (diff) | |
download | qemu-8aaf7da9c3b1f282b5a123de3e87a2e6ca87f3b9.tar.gz qemu-8aaf7da9c3b1f282b5a123de3e87a2e6ca87f3b9.tar.xz qemu-8aaf7da9c3b1f282b5a123de3e87a2e6ca87f3b9.zip |
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>
Diffstat (limited to 'target/m68k/translate.c')
-rw-r--r-- | target/m68k/translate.c | 5 |
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 */ |