@@ -1018,32 +1018,32 @@ uint32_t helper_ftdiv(uint64_t fra, uint64_t frb)
if (unlikely(float64_is_infinity(fra) ||
float64_is_infinity(frb) ||
float64_is_zero(frb))) {
- fe_flag = 1;
- fg_flag = 1;
+ fe_flag = 8 >> CRF_EQ;
+ fg_flag = 8 >> CRF_GT;
} else {
int e_a = ppc_float64_get_unbiased_exp(fra);
int e_b = ppc_float64_get_unbiased_exp(frb);
if (unlikely(float64_is_any_nan(fra) ||
float64_is_any_nan(frb))) {
- fe_flag = 1;
+ fe_flag = 8 >> CRF_EQ;
} else if ((e_b <= -1022) || (e_b >= 1021)) {
- fe_flag = 1;
+ fe_flag = 8 >> CRF_EQ;
} else if (!float64_is_zero(fra) &&
(((e_a - e_b) >= 1023) ||
((e_a - e_b) <= -1021) ||
(e_a <= -970))) {
- fe_flag = 1;
+ fe_flag = 8 >> CRF_EQ;
}
if (unlikely(float64_is_zero_or_denormal(frb))) {
/* XB is not zero because of the above check and */
/* so must be denormalized. */
- fg_flag = 1;
+ fg_flag = 8 >> CRF_GT;
}
}
- return 0x8 | (fg_flag ? 4 : 0) | (fe_flag ? 2 : 0);
+ return (8 >> CRF_LT) | fg_flag | fe_flag;
}
uint32_t helper_ftsqrt(uint64_t frb)