From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:57097) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QA9De-0002KB-1K for qemu-devel@nongnu.org; Wed, 13 Apr 2011 19:11:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QA9Dc-000524-K0 for qemu-devel@nongnu.org; Wed, 13 Apr 2011 19:11:29 -0400 Received: from hall.aurel32.net ([88.191.126.93]:56707) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QA9Dc-0004y9-E9 for qemu-devel@nongnu.org; Wed, 13 Apr 2011 19:11:28 -0400 From: Aurelien Jarno Date: Thu, 14 Apr 2011 01:11:03 +0200 Message-Id: <1302736274-2908-9-git-send-email-aurelien@aurel32.net> In-Reply-To: <1302736274-2908-1-git-send-email-aurelien@aurel32.net> References: <1302736274-2908-1-git-send-email-aurelien@aurel32.net> Subject: [Qemu-devel] [PATCH v2 08/19] target-alpha: use new float64_unordered_quiet() function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Aurelien Jarno 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. Signed-off-by: Aurelien Jarno --- target-alpha/op_helper.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) v2: use float64_unordered_quiet() instead of float64_unordered() 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) -- 1.7.2.3