From a4d2d1a063897b859b7f25e414b229370b679bc8 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Thu, 14 Apr 2011 00:49:29 +0200 Subject: [PATCH] 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 --- target-alpha/op_helper.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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) -- 2.39.5