From b7ea74f0747456c99421f14f963082b1dcb6c30d Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sat, 12 Oct 2013 12:23:28 +0000 Subject: soft-fp: make __unord* raise "invalid" for signaling NaNs (bug 16036). --- soft-fp/unordsf2.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'soft-fp/unordsf2.c') diff --git a/soft-fp/unordsf2.c b/soft-fp/unordsf2.c index b5b5322c16..217975f000 100644 --- a/soft-fp/unordsf2.c +++ b/soft-fp/unordsf2.c @@ -32,13 +32,18 @@ CMPtype __unordsf2(SFtype a, SFtype b) { + FP_DECL_EX; FP_DECL_S(A); FP_DECL_S(B); CMPtype r; + FP_INIT_EXCEPTIONS; FP_UNPACK_RAW_S(A, a); FP_UNPACK_RAW_S(B, b); FP_CMP_UNORD_S(r, A, B); + if (r && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B))) + FP_SET_EXCEPTION(FP_EX_INVALID); + FP_HANDLE_EXCEPTIONS; return r; } -- cgit v1.2.3