target_ulong helper_srad(CPUPPCState *env, target_ulong value,

                         target_ulong shift)

{

    int64_t ret;



    if (likely(!(shift & 0x40))) {

        if (likely((uint64_t)shift != 0)) {

            shift &= 0x3f;

            ret = (int64_t)value >> shift;

            if (likely(ret >= 0 || (value & ((1 << shift) - 1)) == 0)) {

                env->ca = 0;

            } else {

                env->ca = 1;

            }

        } else {

            ret = (int64_t)value;

            env->ca = 0;

        }

    } else {

        ret = (int64_t)value >> 63;

        env->ca = (ret != 0);

    }

    return ret;

}

target_ulong helper_srad(CPUPPCState *env, target_ulong value,

                         target_ulong shift)

{

    int64_t ret;



    if (likely(!(shift & 0x40))) {

        if (likely((uint64_t)shift != 0)) {

            shift &= 0x3f;

            ret = (int64_t)value >> shift;

            if (likely(ret >= 0 || (value & ((1 << shift) - 1)) == 0)) {

                env->ca = 0;

            } else {

                env->ca = 1;

            }

        } else {

            ret = (int64_t)value;

            env->ca = 0;

        }

    } else {

        ret = (int64_t)value >> 63;

        env->ca = (ret != 0);

    }

    return ret;

}

            if (likely(ret >= 0 || (value & ((1 << shift) - 1)) == 0)) {
target_ulong FUNC_0(CPUPPCState *env, target_ulong value,

                         target_ulong shift)

{

    int64_t ret;



    if (likely(!(shift & 0x40))) {

        if (likely((uint64_t)shift != 0)) {

            shift &= 0x3f;

            ret = (int64_t)value >> shift;

            if (likely(ret >= 0 || (value & ((1 << shift) - 1)) == 0)) {

                env->ca = 0;

            } else {

                env->ca = 1;

            }

        } else {

            ret = (int64_t)value;

            env->ca = 0;

        }

    } else {

        ret = (int64_t)value >> 63;

        env->ca = (ret != 0);

    }

    return ret;

}

target_ulong FUNC_0(CPUPPCState *env, target_ulong value,
target_ulong shift)
{ int64_t ret; if (likely(!(shift & 0x40))) { if (likely((uint64_t)shift != 0)) { shift &= 0x3f; ret = (int64_t)value >> shift; if (likely(ret >= 0 || (value & ((1 << shift) - 1)) == 0)) { env->ca = 0; } else { env->ca = 1; } } else { ret = (int64_t)value; env->ca = 0; } } else { ret = (int64_t)value >> 63; env->ca = (ret != 0); } return ret; }