On 06/14/2018 12:28 PM, Mark Cave-Ayland wrote:
> @@ -5834,6 +5928,11 @@ static void sparc_tr_tb_stop(DisasContextBase *dcbase, 
> CPUState *cs)
>              save_npc(dc);
>              tcg_gen_exit_tb(NULL, 0);
>          }
> +    } else if (dc->base.is_jmp == DISAS_EXIT) {
> +        /* Exit TB */
> +        save_state(dc);
> +        gen_op_next_insn();
> +        tcg_gen_exit_tb(NULL, 0);
>      }

This doesn't look reachable, since the IF that goes with this ELSE is

    if (dc->base.is_jmp != DISAS_NORETURN) {

I suggest

    switch (dc->base.is_jmp) {
    case DISAS_NORETURN:
       break;

    case DISAS_TOO_MANY:
       /* existing block */
       break;

    case DISAS_EXIT:
       /* new code from above */

    default:
        g_assert_not_reached();
    }


r~

Reply via email to