static void tcg_out_brcond2(TCGContext *s, TCGCond cond, TCGReg al, TCGReg ah,

                            TCGReg bl, TCGReg bh, int label_index)

{

    TCGCond b_cond = TCG_COND_NE;

    TCGReg tmp = TCG_TMP1;



    /* With branches, we emit between 4 and 9 insns with 2 or 3 branches.

       With setcond, we emit between 3 and 10 insns and only 1 branch,

       which ought to get better branch prediction.  */

     switch (cond) {

     case TCG_COND_EQ:

     case TCG_COND_NE:

        b_cond = cond;

        tmp = tcg_out_reduce_eq2(s, TCG_TMP0, TCG_TMP1, al, ah, bl, bh);

        break;



    default:

        /* Minimize code size by preferring a compare not requiring INV.  */

        if (mips_cmp_map[cond] & MIPS_CMP_INV) {

            cond = tcg_invert_cond(cond);

            b_cond = TCG_COND_EQ;

        }

        tcg_out_setcond2(s, cond, tmp, al, ah, bl, bh);

        break;

    }



    tcg_out_brcond(s, b_cond, tmp, TCG_REG_ZERO, label_index);

}

static void tcg_out_brcond2(TCGContext *s, TCGCond cond, TCGReg al, TCGReg ah,

                            TCGReg bl, TCGReg bh, int label_index)

{

    TCGCond b_cond = TCG_COND_NE;

    TCGReg tmp = TCG_TMP1;



    





     switch (cond) {

     case TCG_COND_EQ:

     case TCG_COND_NE:

        b_cond = cond;

        tmp = tcg_out_reduce_eq2(s, TCG_TMP0, TCG_TMP1, al, ah, bl, bh);

        break;



    default:

        

        if (mips_cmp_map[cond] & MIPS_CMP_INV) {

            cond = tcg_invert_cond(cond);

            b_cond = TCG_COND_EQ;

        }

        tcg_out_setcond2(s, cond, tmp, al, ah, bl, bh);

        break;

    }



    tcg_out_brcond(s, b_cond, tmp, TCG_REG_ZERO, label_index);

}

static void FUNC_0(TCGContext *VAR_0, TCGCond VAR_1, TCGReg VAR_2, TCGReg VAR_3,

                            TCGReg VAR_4, TCGReg VAR_5, int VAR_6)

{

    TCGCond b_cond = TCG_COND_NE;

    TCGReg tmp = TCG_TMP1;



    





     switch (VAR_1) {

     case TCG_COND_EQ:

     case TCG_COND_NE:

        b_cond = VAR_1;

        tmp = tcg_out_reduce_eq2(VAR_0, TCG_TMP0, TCG_TMP1, VAR_2, VAR_3, VAR_4, VAR_5);

        break;



    default:

        

        if (mips_cmp_map[VAR_1] & MIPS_CMP_INV) {

            VAR_1 = tcg_invert_cond(VAR_1);

            b_cond = TCG_COND_EQ;

        }

        tcg_out_setcond2(VAR_0, VAR_1, tmp, VAR_2, VAR_3, VAR_4, VAR_5);

        break;

    }



    tcg_out_brcond(VAR_0, b_cond, tmp, TCG_REG_ZERO, VAR_6);

}

static void FUNC_0(TCGContext *VAR_0, TCGCond VAR_1, TCGReg VAR_2, TCGReg VAR_3,
TCGReg VAR_4, TCGReg VAR_5, int VAR_6)
{ TCGCond b_cond = TCG_COND_NE; TCGReg tmp = TCG_TMP1; switch (VAR_1) { case TCG_COND_EQ:
case TCG_COND_NE:
b_cond = VAR_1; tmp = tcg_out_reduce_eq2(VAR_0, TCG_TMP0, TCG_TMP1, VAR_2, VAR_3, VAR_4, VAR_5); break; default:
if (mips_cmp_map[VAR_1] & MIPS_CMP_INV) { VAR_1 = tcg_invert_cond(VAR_1); b_cond = TCG_COND_EQ; } tcg_out_setcond2(VAR_0, VAR_1, tmp, VAR_2, VAR_3, VAR_4, VAR_5); break; } tcg_out_brcond(VAR_0, b_cond, tmp, TCG_REG_ZERO, VAR_6); }