diff mbox

[v2,08/19] target-alpha: use new float64_unordered_quiet() function

Message ID 1302736274-2908-9-git-send-email-aurelien@aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno April 13, 2011, 11:11 p.m. UTC
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 <peter.maydell@linaro.org> and Richard
Henderson <rth@twiddle.net> for digging into the manuals.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 target-alpha/op_helper.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

v2: use float64_unordered_quiet() instead of float64_unordered()

Comments

Richard Henderson April 14, 2011, 4:35 p.m. UTC | #1
On 04/13/2011 04:11 PM, Aurelien Jarno wrote:
> 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 <peter.maydell@linaro.org> and Richard
> Henderson <rth@twiddle.net> for digging into the manuals.
> 
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

Acked-by: Richard Henderson  <rth@twiddle.net>



r~
diff mbox

Patch

diff --git a/target-alpha/op_helper.c b/target-alpha/op_helper.c
index 6c2ae20..36f4f6d 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)