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~