static inline void gen_op_arith_subf(DisasContext *ctx, TCGv ret, TCGv arg1,

                                     TCGv arg2, int add_ca, int compute_ca,

                                     int compute_ov)

{

    TCGv t0, t1;



    if ((!compute_ca && !compute_ov) ||

        (!TCGV_EQUAL(ret, arg1) && !TCGV_EQUAL(ret, arg2)))  {

        t0 = ret;

    } else {

        t0 = tcg_temp_local_new();

    }



    if (add_ca) {

        t1 = tcg_temp_local_new();

        tcg_gen_mov_tl(t1, cpu_ca);

    } else {

        TCGV_UNUSED(t1);

    }



    if (compute_ca) {

        /* Start with XER CA disabled, the most likely case */

        tcg_gen_movi_tl(cpu_ca, 0);

    }

    if (compute_ov) {

        /* Start with XER OV disabled, the most likely case */

        tcg_gen_movi_tl(cpu_ov, 0);

    }



    if (add_ca) {

        tcg_gen_not_tl(t0, arg1);

        tcg_gen_add_tl(t0, t0, arg2);

        gen_op_arith_compute_ca(ctx, t0, arg2, 0);

        tcg_gen_add_tl(t0, t0, t1);

        gen_op_arith_compute_ca(ctx, t0, t1, 0);

        tcg_temp_free(t1);

    } else {

        tcg_gen_sub_tl(t0, arg2, arg1);

        if (compute_ca) {

            gen_op_arith_compute_ca(ctx, t0, arg2, 1);

        }

    }

    if (compute_ov) {

        gen_op_arith_compute_ov(ctx, t0, arg1, arg2, 1);

    }



    if (unlikely(Rc(ctx->opcode) != 0))

        gen_set_Rc0(ctx, t0);



    if (!TCGV_EQUAL(t0, ret)) {

        tcg_gen_mov_tl(ret, t0);

        tcg_temp_free(t0);

    }

}

static inline void gen_op_arith_subf(DisasContext *ctx, TCGv ret, TCGv arg1,

                                     TCGv arg2, int add_ca, int compute_ca,

                                     int compute_ov)

{

    TCGv t0, t1;



    if ((!compute_ca && !compute_ov) ||

        (!TCGV_EQUAL(ret, arg1) && !TCGV_EQUAL(ret, arg2)))  {

        t0 = ret;

    } else {

        t0 = tcg_temp_local_new();

    }



    if (add_ca) {

        t1 = tcg_temp_local_new();

        tcg_gen_mov_tl(t1, cpu_ca);

    } else {

        TCGV_UNUSED(t1);

    }



    if (compute_ca) {

        

        tcg_gen_movi_tl(cpu_ca, 0);

    }

    if (compute_ov) {

        

        tcg_gen_movi_tl(cpu_ov, 0);

    }



    if (add_ca) {

        tcg_gen_not_tl(t0, arg1);

        tcg_gen_add_tl(t0, t0, arg2);

        gen_op_arith_compute_ca(ctx, t0, arg2, 0);

        tcg_gen_add_tl(t0, t0, t1);

        gen_op_arith_compute_ca(ctx, t0, t1, 0);

        tcg_temp_free(t1);

    } else {

        tcg_gen_sub_tl(t0, arg2, arg1);

        if (compute_ca) {

            gen_op_arith_compute_ca(ctx, t0, arg2, 1);

        }

    }

    if (compute_ov) {

        gen_op_arith_compute_ov(ctx, t0, arg1, arg2, 1);

    }



    if (unlikely(Rc(ctx->opcode) != 0))

        gen_set_Rc0(ctx, t0);



    if (!TCGV_EQUAL(t0, ret)) {

        tcg_gen_mov_tl(ret, t0);

        tcg_temp_free(t0);

    }

}

    if (compute_ov) {         tcg_gen_movi_tl(cpu_ov, 0);     if (compute_ov) {         tcg_gen_movi_tl(cpu_ov, 0);
static inline void FUNC_0(DisasContext *VAR_0, TCGv VAR_1, TCGv VAR_2,

                                     TCGv VAR_3, int VAR_4, int VAR_5,

                                     int VAR_6)

{

    TCGv t0, t1;



    if ((!VAR_5 && !VAR_6) ||

        (!TCGV_EQUAL(VAR_1, VAR_2) && !TCGV_EQUAL(VAR_1, VAR_3)))  {

        t0 = VAR_1;

    } else {

        t0 = tcg_temp_local_new();

    }



    if (VAR_4) {

        t1 = tcg_temp_local_new();

        tcg_gen_mov_tl(t1, cpu_ca);

    } else {

        TCGV_UNUSED(t1);

    }



    if (VAR_5) {

        

        tcg_gen_movi_tl(cpu_ca, 0);

    }

    if (VAR_6) {

        

        tcg_gen_movi_tl(cpu_ov, 0);

    }



    if (VAR_4) {

        tcg_gen_not_tl(t0, VAR_2);

        tcg_gen_add_tl(t0, t0, VAR_3);

        gen_op_arith_compute_ca(VAR_0, t0, VAR_3, 0);

        tcg_gen_add_tl(t0, t0, t1);

        gen_op_arith_compute_ca(VAR_0, t0, t1, 0);

        tcg_temp_free(t1);

    } else {

        tcg_gen_sub_tl(t0, VAR_3, VAR_2);

        if (VAR_5) {

            gen_op_arith_compute_ca(VAR_0, t0, VAR_3, 1);

        }

    }

    if (VAR_6) {

        gen_op_arith_compute_ov(VAR_0, t0, VAR_2, VAR_3, 1);

    }



    if (unlikely(Rc(VAR_0->opcode) != 0))

        gen_set_Rc0(VAR_0, t0);



    if (!TCGV_EQUAL(t0, VAR_1)) {

        tcg_gen_mov_tl(VAR_1, t0);

        tcg_temp_free(t0);

    }

}

static inline void FUNC_0(DisasContext *VAR_0, TCGv VAR_1, TCGv VAR_2,
TCGv VAR_3, int VAR_4, int VAR_5,
int VAR_6)
{ TCGv t0, t1; if ((!VAR_5 && !VAR_6) ||
(!TCGV_EQUAL(VAR_1, VAR_2) && !TCGV_EQUAL(VAR_1, VAR_3)))  { t0 = VAR_1; } else { t0 = tcg_temp_local_new(); } if (VAR_4) { t1 = tcg_temp_local_new(); tcg_gen_mov_tl(t1, cpu_ca); } else { TCGV_UNUSED(t1); } if (VAR_5) { tcg_gen_movi_tl(cpu_ca, 0); } if (VAR_6) { tcg_gen_movi_tl(cpu_ov, 0); } if (VAR_4) { tcg_gen_not_tl(t0, VAR_2); tcg_gen_add_tl(t0, t0, VAR_3); gen_op_arith_compute_ca(VAR_0, t0, VAR_3, 0); tcg_gen_add_tl(t0, t0, t1); gen_op_arith_compute_ca(VAR_0, t0, t1, 0); tcg_temp_free(t1); } else { tcg_gen_sub_tl(t0, VAR_3, VAR_2); if (VAR_5) { gen_op_arith_compute_ca(VAR_0, t0, VAR_3, 1); } } if (VAR_6) { gen_op_arith_compute_ov(VAR_0, t0, VAR_2, VAR_3, 1); } if (unlikely(Rc(VAR_0->opcode) != 0))
gen_set_Rc0(VAR_0, t0); if (!TCGV_EQUAL(t0, VAR_1)) { tcg_gen_mov_tl(VAR_1, t0); tcg_temp_free(t0); } }