From: Richard Henderson <richard.hender...@linaro.org> We do not need to emit an exit_tb after an exception, as the latter will exit via longjmp.
Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- target/ppc/translate.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 46de2dab27..b18ad8ec2c 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3744,8 +3744,9 @@ static void gen_lookup_and_goto_ptr(DisasContext *ctx) } else if (sse & (CPU_SINGLE_STEP | CPU_BRANCH_STEP)) { uint32_t excp = gen_prep_dbgex(ctx); gen_exception(ctx, excp); + } else { + tcg_gen_exit_tb(NULL, 0); } - tcg_gen_exit_tb(NULL, 0); } else { tcg_gen_lookup_and_goto_ptr(); } @@ -8101,9 +8102,10 @@ static void ppc_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs) } else if (ctx->exception != POWERPC_EXCP_BRANCH) { if (unlikely(ctx->base.singlestep_enabled)) { gen_debug_exception(ctx); + } else { + /* Generate the return instruction */ + tcg_gen_exit_tb(NULL, 0); } - /* Generate the return instruction */ - tcg_gen_exit_tb(NULL, 0); } } -- 2.25.1