do_gen_eob_worker(DisasContext *s, bool inhibit, bool recheck_tf, TCGv jr)

{

    gen_update_cc_op(s);



    /* If several instructions disable interrupts, only the first does it.  */

    if (inhibit && !(s->flags & HF_INHIBIT_IRQ_MASK)) {

        gen_set_hflag(s, HF_INHIBIT_IRQ_MASK);

    } else {

        gen_reset_hflag(s, HF_INHIBIT_IRQ_MASK);

    }



    if (s->tb->flags & HF_RF_MASK) {

        gen_helper_reset_rf(cpu_env);

    }

    if (s->singlestep_enabled) {

        gen_helper_debug(cpu_env);

    } else if (recheck_tf) {

        gen_helper_rechecking_single_step(cpu_env);

        tcg_gen_exit_tb(0);

    } else if (s->tf) {

        gen_helper_single_step(cpu_env);

    } else if (!TCGV_IS_UNUSED(jr)) {

        TCGv vaddr = tcg_temp_new();



        tcg_gen_add_tl(vaddr, jr, cpu_seg_base[R_CS]);

        tcg_gen_lookup_and_goto_ptr(vaddr);

        tcg_temp_free(vaddr);

    } else {

        tcg_gen_exit_tb(0);

    }

    s->is_jmp = DISAS_TB_JUMP;

}

do_gen_eob_worker(DisasContext *s, bool inhibit, bool recheck_tf, TCGv jr)

{

    gen_update_cc_op(s);



    

    if (inhibit && !(s->flags & HF_INHIBIT_IRQ_MASK)) {

        gen_set_hflag(s, HF_INHIBIT_IRQ_MASK);

    } else {

        gen_reset_hflag(s, HF_INHIBIT_IRQ_MASK);

    }



    if (s->tb->flags & HF_RF_MASK) {

        gen_helper_reset_rf(cpu_env);

    }

    if (s->singlestep_enabled) {

        gen_helper_debug(cpu_env);

    } else if (recheck_tf) {

        gen_helper_rechecking_single_step(cpu_env);

        tcg_gen_exit_tb(0);

    } else if (s->tf) {

        gen_helper_single_step(cpu_env);

    } else if (!TCGV_IS_UNUSED(jr)) {

        TCGv vaddr = tcg_temp_new();



        tcg_gen_add_tl(vaddr, jr, cpu_seg_base[R_CS]);

        tcg_gen_lookup_and_goto_ptr(vaddr);

        tcg_temp_free(vaddr);

    } else {

        tcg_gen_exit_tb(0);

    }

    s->is_jmp = DISAS_TB_JUMP;

}

FUNC_0(DisasContext *VAR_0, bool VAR_1, bool VAR_2, TCGv VAR_3)

{

    gen_update_cc_op(VAR_0);



    

    if (VAR_1 && !(VAR_0->flags & HF_INHIBIT_IRQ_MASK)) {

        gen_set_hflag(VAR_0, HF_INHIBIT_IRQ_MASK);

    } else {

        gen_reset_hflag(VAR_0, HF_INHIBIT_IRQ_MASK);

    }



    if (VAR_0->tb->flags & HF_RF_MASK) {

        gen_helper_reset_rf(cpu_env);

    }

    if (VAR_0->singlestep_enabled) {

        gen_helper_debug(cpu_env);

    } else if (VAR_2) {

        gen_helper_rechecking_single_step(cpu_env);

        tcg_gen_exit_tb(0);

    } else if (VAR_0->tf) {

        gen_helper_single_step(cpu_env);

    } else if (!TCGV_IS_UNUSED(VAR_3)) {

        TCGv vaddr = tcg_temp_new();



        tcg_gen_add_tl(vaddr, VAR_3, cpu_seg_base[R_CS]);

        tcg_gen_lookup_and_goto_ptr(vaddr);

        tcg_temp_free(vaddr);

    } else {

        tcg_gen_exit_tb(0);

    }

    VAR_0->is_jmp = DISAS_TB_JUMP;

}

FUNC_0(DisasContext *VAR_0, bool VAR_1, bool VAR_2, TCGv VAR_3)
{ gen_update_cc_op(VAR_0); if (VAR_1 && !(VAR_0->flags & HF_INHIBIT_IRQ_MASK)) { gen_set_hflag(VAR_0, HF_INHIBIT_IRQ_MASK); } else { gen_reset_hflag(VAR_0, HF_INHIBIT_IRQ_MASK); } if (VAR_0->tb->flags & HF_RF_MASK) { gen_helper_reset_rf(cpu_env); } if (VAR_0->singlestep_enabled) { gen_helper_debug(cpu_env); } else if (VAR_2) { gen_helper_rechecking_single_step(cpu_env); tcg_gen_exit_tb(0); } else if (VAR_0->tf) { gen_helper_single_step(cpu_env); } else if (!TCGV_IS_UNUSED(VAR_3)) { TCGv vaddr = tcg_temp_new(); tcg_gen_add_tl(vaddr, VAR_3, cpu_seg_base[R_CS]); tcg_gen_lookup_and_goto_ptr(vaddr); tcg_temp_free(vaddr); } else { tcg_gen_exit_tb(0); } VAR_0->is_jmp = DISAS_TB_JUMP; }