aboutsummaryrefslogtreecommitdiff
path: root/soft-fp/unorddf2.c
diff options
context:
space:
mode:
Diffstat (limited to 'soft-fp/unorddf2.c')
-rw-r--r--soft-fp/unorddf2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/soft-fp/unorddf2.c b/soft-fp/unorddf2.c
index 2e77f2d..bc4efa3 100644
--- a/soft-fp/unorddf2.c
+++ b/soft-fp/unorddf2.c
@@ -32,12 +32,17 @@
CMPtype __unorddf2(DFtype a, DFtype b)
{
+ FP_DECL_EX;
FP_DECL_D(A); FP_DECL_D(B);
CMPtype r;
+ FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_D(A, a);
FP_UNPACK_RAW_D(B, b);
FP_CMP_UNORD_D(r, A, B);
+ if (r && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
+ FP_SET_EXCEPTION(FP_EX_INVALID);
+ FP_HANDLE_EXCEPTIONS;
return r;
}