Revision dda3ec49

b/target-arm/helper.c
2707 2707
    return do_fcvt_f32_to_f16(a, env, &env->vfp.fp_status);
2708 2708
}
2709 2709

  
2710
#define float32_two make_float32(0x40000000)
2711

  
2710 2712
float32 HELPER(recps_f32)(float32 a, float32 b, CPUState *env)
2711 2713
{
2712
    float_status *s = &env->vfp.fp_status;
2713
    float32 two = int32_to_float32(2, s);
2714
    return float32_sub(two, float32_mul(a, b, s), s);
2714
    float_status *s = &env->vfp.standard_fp_status;
2715
    if ((float32_is_infinity(a) && float32_is_zero_or_denormal(b)) ||
2716
        (float32_is_infinity(b) && float32_is_zero_or_denormal(a))) {
2717
        return float32_two;
2718
    }
2719
    return float32_sub(float32_two, float32_mul(a, b, s), s);
2715 2720
}
2716 2721

  
2717 2722
float32 HELPER(rsqrts_f32)(float32 a, float32 b, CPUState *env)

Also available in: Unified diff