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