Use float64_unordered_quiet() in helper_cmptun() instead of doing the
the comparison manually.
According to the "Alpha Compiler Writer's Guide", we should use the
_quiet version here, as CMPTUN and CMPTEQ should generate InvalidOp
for SNaNs but not for QNaNs.
Thanks to Peter Maydell <
[email protected]> and Richard
Henderson <
[email protected]> for digging into the manuals.
Acked-by: Richard Henderson <[email protected]>
Signed-off-by: Aurelien Jarno <[email protected]>
fa = t_to_float64(a);
fb = t_to_float64(b);
- if (float64_is_quiet_nan(fa) || float64_is_quiet_nan(fb))
+ if (float64_unordered_quiet(fa, fb, &FP_STATUS)) {
return 0x4000000000000000ULL;
- else
+ } else {
return 0;
+ }
}
uint64_t helper_cmpteq(uint64_t a, uint64_t b)