static void tcg_out_brcond_i64(TCGContext *s, TCGCond cond, TCGReg arg1,

                               int32_t arg2, int const_arg2, int label)

{

    /* For 64-bit signed comparisons vs zero, we can avoid the compare.  */

    if (arg2 == 0 && !is_unsigned_cond(cond)) {

        TCGLabel *l = &s->labels[label];

        int off16;



        if (l->has_value) {

            off16 = INSN_OFF16(tcg_pcrel_diff(s, l->u.value_ptr));

        } else {

            /* Make sure to preserve destinations during retranslation.  */

            off16 = *s->code_ptr & INSN_OFF16(-1);

            tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP16, label, 0);

        }

        tcg_out32(s, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(arg1)

                  | INSN_COND(tcg_cond_to_rcond[cond]) | off16);

    } else {

        tcg_out_cmp(s, arg1, arg2, const_arg2);

        tcg_out_bpcc(s, tcg_cond_to_bcond[cond], BPCC_XCC | BPCC_PT, label);

    }

    tcg_out_nop(s);

}

static void tcg_out_brcond_i64(TCGContext *s, TCGCond cond, TCGReg arg1,

                               int32_t arg2, int const_arg2, int label)

{

    

    if (arg2 == 0 && !is_unsigned_cond(cond)) {

        TCGLabel *l = &s->labels[label];

        int off16;



        if (l->has_value) {

            off16 = INSN_OFF16(tcg_pcrel_diff(s, l->u.value_ptr));

        } else {

            

            off16 = *s->code_ptr & INSN_OFF16(-1);

            tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP16, label, 0);

        }

        tcg_out32(s, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(arg1)

                  | INSN_COND(tcg_cond_to_rcond[cond]) | off16);

    } else {

        tcg_out_cmp(s, arg1, arg2, const_arg2);

        tcg_out_bpcc(s, tcg_cond_to_bcond[cond], BPCC_XCC | BPCC_PT, label);

    }

    tcg_out_nop(s);

}

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

                               int32_t VAR_3, int VAR_4, int VAR_5)

{

    

    if (VAR_3 == 0 && !is_unsigned_cond(VAR_1)) {

        TCGLabel *l = &VAR_0->labels[VAR_5];

        int VAR_6;



        if (l->has_value) {

            VAR_6 = INSN_OFF16(tcg_pcrel_diff(VAR_0, l->u.value_ptr));

        } else {

            

            VAR_6 = *VAR_0->code_ptr & INSN_OFF16(-1);

            tcg_out_reloc(VAR_0, VAR_0->code_ptr, R_SPARC_WDISP16, VAR_5, 0);

        }

        tcg_out32(VAR_0, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(VAR_2)

                  | INSN_COND(tcg_cond_to_rcond[VAR_1]) | VAR_6);

    } else {

        tcg_out_cmp(VAR_0, VAR_2, VAR_3, VAR_4);

        tcg_out_bpcc(VAR_0, tcg_cond_to_bcond[VAR_1], BPCC_XCC | BPCC_PT, VAR_5);

    }

    tcg_out_nop(VAR_0);

}

static void FUNC_0(TCGContext *VAR_0, TCGCond VAR_1, TCGReg VAR_2,
int32_t VAR_3, int VAR_4, int VAR_5)
{ if (VAR_3 == 0 && !is_unsigned_cond(VAR_1)) { TCGLabel *l = &VAR_0->labels[VAR_5]; int VAR_6; if (l->has_value) { VAR_6 = INSN_OFF16(tcg_pcrel_diff(VAR_0, l->u.value_ptr)); } else { VAR_6 = *VAR_0->code_ptr & INSN_OFF16(-1); tcg_out_reloc(VAR_0, VAR_0->code_ptr, R_SPARC_WDISP16, VAR_5, 0); } tcg_out32(VAR_0, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(VAR_2)
| INSN_COND(tcg_cond_to_rcond[VAR_1]) | VAR_6); } else { tcg_out_cmp(VAR_0, VAR_2, VAR_3, VAR_4); tcg_out_bpcc(VAR_0, tcg_cond_to_bcond[VAR_1], BPCC_XCC | BPCC_PT, VAR_5); } tcg_out_nop(VAR_0); }