static void tcg_out_andi64(TCGContext *s, TCGReg dst, TCGReg src, uint64_t c)

{

    int mb, me;



    assert(TCG_TARGET_REG_BITS == 64);

    if (mask64_operand(c, &mb, &me)) {

        if (mb == 0) {

            tcg_out_rld(s, RLDICR, dst, src, 0, me);

        } else {

            tcg_out_rld(s, RLDICL, dst, src, 0, mb);

        }

    } else if ((c & 0xffff) == c) {

        tcg_out32(s, ANDI | SAI(src, dst, c));

        return;

    } else if ((c & 0xffff0000) == c) {

        tcg_out32(s, ANDIS | SAI(src, dst, c >> 16));

        return;

    } else {

        tcg_out_movi(s, TCG_TYPE_I64, TCG_REG_R0, c);

        tcg_out32(s, AND | SAB(src, dst, TCG_REG_R0));

    }

}

static void tcg_out_andi64(TCGContext *s, TCGReg dst, TCGReg src, uint64_t c)

{

    int mb, me;



    assert(TCG_TARGET_REG_BITS == 64);

    if (mask64_operand(c, &mb, &me)) {

        if (mb == 0) {

            tcg_out_rld(s, RLDICR, dst, src, 0, me);

        } else {

            tcg_out_rld(s, RLDICL, dst, src, 0, mb);

        }

    } else if ((c & 0xffff) == c) {

        tcg_out32(s, ANDI | SAI(src, dst, c));

        return;

    } else if ((c & 0xffff0000) == c) {

        tcg_out32(s, ANDIS | SAI(src, dst, c >> 16));

        return;

    } else {

        tcg_out_movi(s, TCG_TYPE_I64, TCG_REG_R0, c);

        tcg_out32(s, AND | SAB(src, dst, TCG_REG_R0));

    }

}

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

{

    int VAR_4, VAR_5;



    assert(TCG_TARGET_REG_BITS == 64);

    if (mask64_operand(VAR_3, &VAR_4, &VAR_5)) {

        if (VAR_4 == 0) {

            tcg_out_rld(VAR_0, RLDICR, VAR_1, VAR_2, 0, VAR_5);

        } else {

            tcg_out_rld(VAR_0, RLDICL, VAR_1, VAR_2, 0, VAR_4);

        }

    } else if ((VAR_3 & 0xffff) == VAR_3) {

        tcg_out32(VAR_0, ANDI | SAI(VAR_2, VAR_1, VAR_3));

        return;

    } else if ((VAR_3 & 0xffff0000) == VAR_3) {

        tcg_out32(VAR_0, ANDIS | SAI(VAR_2, VAR_1, VAR_3 >> 16));

        return;

    } else {

        tcg_out_movi(VAR_0, TCG_TYPE_I64, TCG_REG_R0, VAR_3);

        tcg_out32(VAR_0, AND | SAB(VAR_2, VAR_1, TCG_REG_R0));

    }

}

static void FUNC_0(TCGContext *VAR_0, TCGReg VAR_1, TCGReg VAR_2, uint64_t VAR_3)
{ int VAR_4, VAR_5; assert(TCG_TARGET_REG_BITS == 64); if (mask64_operand(VAR_3, &VAR_4, &VAR_5)) { if (VAR_4 == 0) { tcg_out_rld(VAR_0, RLDICR, VAR_1, VAR_2, 0, VAR_5); } else { tcg_out_rld(VAR_0, RLDICL, VAR_1, VAR_2, 0, VAR_4); } } else if ((VAR_3 & 0xffff) == VAR_3) { tcg_out32(VAR_0, ANDI | SAI(VAR_2, VAR_1, VAR_3)); return; } else if ((VAR_3 & 0xffff0000) == VAR_3) { tcg_out32(VAR_0, ANDIS | SAI(VAR_2, VAR_1, VAR_3 >> 16)); return; } else { tcg_out_movi(VAR_0, TCG_TYPE_I64, TCG_REG_R0, VAR_3); tcg_out32(VAR_0, AND | SAB(VAR_2, VAR_1, TCG_REG_R0)); } }