static void do_fbranch(DisasContext *dc, int32_t offset, uint32_t insn, int cc,

                      TCGv r_cond)

{

    unsigned int cond = GET_FIELD(insn, 3, 6), a = (insn & (1 << 29));

    target_ulong target = dc->pc + offset;



    if (cond == 0x0) {

        /* unconditional not taken */

        if (a) {

            dc->pc = dc->npc + 4;

            dc->npc = dc->pc + 4;

        } else {

            dc->pc = dc->npc;

            dc->npc = dc->pc + 4;

        }

    } else if (cond == 0x8) {

        /* unconditional taken */

        if (a) {

            dc->pc = target;

            dc->npc = dc->pc + 4;

        } else {

            dc->pc = dc->npc;

            dc->npc = target;

            tcg_gen_mov_tl(cpu_pc, cpu_npc);

        }

    } else {

        flush_cond(dc, r_cond);

        gen_fcond(r_cond, cc, cond);

        if (a) {

            gen_branch_a(dc, target, dc->npc, r_cond);

            dc->is_br = 1;

        } else {

            dc->pc = dc->npc;

            dc->jump_pc[0] = target;

            dc->jump_pc[1] = dc->npc + 4;

            dc->npc = JUMP_PC;

        }

    }

}

static void do_fbranch(DisasContext *dc, int32_t offset, uint32_t insn, int cc,

                      TCGv r_cond)

{

    unsigned int cond = GET_FIELD(insn, 3, 6), a = (insn & (1 << 29));

    target_ulong target = dc->pc + offset;



    if (cond == 0x0) {

        

        if (a) {

            dc->pc = dc->npc + 4;

            dc->npc = dc->pc + 4;

        } else {

            dc->pc = dc->npc;

            dc->npc = dc->pc + 4;

        }

    } else if (cond == 0x8) {

        

        if (a) {

            dc->pc = target;

            dc->npc = dc->pc + 4;

        } else {

            dc->pc = dc->npc;

            dc->npc = target;

            tcg_gen_mov_tl(cpu_pc, cpu_npc);

        }

    } else {

        flush_cond(dc, r_cond);

        gen_fcond(r_cond, cc, cond);

        if (a) {

            gen_branch_a(dc, target, dc->npc, r_cond);

            dc->is_br = 1;

        } else {

            dc->pc = dc->npc;

            dc->jump_pc[0] = target;

            dc->jump_pc[1] = dc->npc + 4;

            dc->npc = JUMP_PC;

        }

    }

}

static void FUNC_0(DisasContext *VAR_0, int32_t VAR_1, uint32_t VAR_2, int VAR_3,

                      TCGv VAR_4)

{

    unsigned int VAR_5 = GET_FIELD(VAR_2, 3, 6), VAR_6 = (VAR_2 & (1 << 29));

    target_ulong target = VAR_0->pc + VAR_1;



    if (VAR_5 == 0x0) {

        

        if (VAR_6) {

            VAR_0->pc = VAR_0->npc + 4;

            VAR_0->npc = VAR_0->pc + 4;

        } else {

            VAR_0->pc = VAR_0->npc;

            VAR_0->npc = VAR_0->pc + 4;

        }

    } else if (VAR_5 == 0x8) {

        

        if (VAR_6) {

            VAR_0->pc = target;

            VAR_0->npc = VAR_0->pc + 4;

        } else {

            VAR_0->pc = VAR_0->npc;

            VAR_0->npc = target;

            tcg_gen_mov_tl(cpu_pc, cpu_npc);

        }

    } else {

        flush_cond(VAR_0, VAR_4);

        gen_fcond(VAR_4, VAR_3, VAR_5);

        if (VAR_6) {

            gen_branch_a(VAR_0, target, VAR_0->npc, VAR_4);

            VAR_0->is_br = 1;

        } else {

            VAR_0->pc = VAR_0->npc;

            VAR_0->jump_pc[0] = target;

            VAR_0->jump_pc[1] = VAR_0->npc + 4;

            VAR_0->npc = JUMP_PC;

        }

    }

}

static void FUNC_0(DisasContext *VAR_0, int32_t VAR_1, uint32_t VAR_2, int VAR_3,
TCGv VAR_4)
{ unsigned int VAR_5 = GET_FIELD(VAR_2, 3, 6), VAR_6 = (VAR_2 & (1 << 29)); target_ulong target = VAR_0->pc + VAR_1; if (VAR_5 == 0x0) { if (VAR_6) { VAR_0->pc = VAR_0->npc + 4; VAR_0->npc = VAR_0->pc + 4; } else { VAR_0->pc = VAR_0->npc; VAR_0->npc = VAR_0->pc + 4; } } else if (VAR_5 == 0x8) { if (VAR_6) { VAR_0->pc = target; VAR_0->npc = VAR_0->pc + 4; } else { VAR_0->pc = VAR_0->npc; VAR_0->npc = target; tcg_gen_mov_tl(cpu_pc, cpu_npc); } } else { flush_cond(VAR_0, VAR_4); gen_fcond(VAR_4, VAR_3, VAR_5); if (VAR_6) { gen_branch_a(VAR_0, target, VAR_0->npc, VAR_4); VAR_0->is_br = 1; } else { VAR_0->pc = VAR_0->npc; VAR_0->jump_pc[0] = target; VAR_0->jump_pc[1] = VAR_0->npc + 4; VAR_0->npc = JUMP_PC; } } }