diff options
author | Richard Henderson | 2021-06-20 22:49:17 +0200 |
---|---|---|
committer | Richard Henderson | 2021-06-29 19:04:56 +0200 |
commit | e0a4620c1f8011cb2b638f9013e087b53ca325ad (patch) | |
tree | bd2890476ad4022b8e6100f90f7797352dd1bb3e /target | |
parent | target/cris: Add DISAS_DBRANCH (diff) | |
download | qemu-e0a4620c1f8011cb2b638f9013e087b53ca325ad.tar.gz qemu-e0a4620c1f8011cb2b638f9013e087b53ca325ad.tar.xz qemu-e0a4620c1f8011cb2b638f9013e087b53ca325ad.zip |
target/cris: Use tcg_gen_lookup_and_goto_ptr
We can use this in gen_goto_tb and for DISAS_JUMP
to indirectly chain to the next TB.
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target')
-rw-r--r-- | target/cris/translate.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/target/cris/translate.c b/target/cris/translate.c index 7035426a9c..8b379522c6 100644 --- a/target/cris/translate.c +++ b/target/cris/translate.c @@ -546,7 +546,7 @@ static void gen_goto_tb(DisasContext *dc, int n, target_ulong dest) tcg_gen_exit_tb(dc->base.tb, n); } else { tcg_gen_movi_tl(env_pc, dest); - tcg_gen_exit_tb(NULL, 0); + tcg_gen_lookup_and_goto_ptr(); } } @@ -3354,6 +3354,8 @@ static void cris_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu) tcg_gen_movi_tl(env_pc, npc); /* fall through */ case DISAS_JUMP: + tcg_gen_lookup_and_goto_ptr(); + break; case DISAS_UPDATE: /* Indicate that interupts must be re-evaluated before the next TB. */ tcg_gen_exit_tb(NULL, 0); |