Revision 6aae3df1 target-arm/helper.c

b/target-arm/helper.c
2708 2708
}
2709 2709

  
2710 2710
#define float32_two make_float32(0x40000000)
2711
#define float32_three make_float32(0x40400000)
2712
#define float32_one_point_five make_float32(0x3fc00000)
2711 2713

  
2712 2714
float32 HELPER(recps_f32)(float32 a, float32 b, CPUState *env)
2713 2715
{
......
2722 2724
float32 HELPER(rsqrts_f32)(float32 a, float32 b, CPUState *env)
2723 2725
{
2724 2726
    float_status *s = &env->vfp.standard_fp_status;
2725
    float32 two = int32_to_float32(2, s);
2726
    float32 three = int32_to_float32(3, s);
2727 2727
    float32 product;
2728 2728
    if ((float32_is_infinity(a) && float32_is_zero_or_denormal(b)) ||
2729 2729
        (float32_is_infinity(b) && float32_is_zero_or_denormal(a))) {
2730
        product = float32_zero;
2731
    } else {
2732
        product = float32_mul(a, b, s);
2730
        return float32_one_point_five;
2733 2731
    }
2734
    return float32_div(float32_sub(three, product, s), two, s);
2732
    product = float32_mul(a, b, s);
2733
    return float32_div(float32_sub(float32_three, product, s), float32_two, s);
2735 2734
}
2736 2735

  
2737 2736
/* NEON helpers.  */

Also available in: Unified diff