From: Aurelien Jarno Date: Wed, 13 Apr 2011 22:49:29 +0000 (+0200) Subject: target-alpha: use new float64_unordered_quiet() function X-Git-Tag: v0.15.0-rc0~441 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a4d2d1a063897b859b7f25e414b229370b679bc8;p=thirdparty%2Fqemu.git target-alpha: use new float64_unordered_quiet() function 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 and Richard Henderson for digging into the manuals. Acked-by: Richard Henderson Signed-off-by: Aurelien Jarno --- diff --git a/target-alpha/op_helper.c b/target-alpha/op_helper.c index 6c2ae2061f0..36f4f6d3b82 100644 --- a/target-alpha/op_helper.c +++ b/target-alpha/op_helper.c @@ -904,10 +904,11 @@ uint64_t helper_cmptun (uint64_t a, uint64_t b) 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)