about summary refs log tree commit diff
path: root/soft-fp/unordtf2.c
diff options
context:
space:
mode:
Diffstat (limited to 'soft-fp/unordtf2.c')
-rw-r--r--soft-fp/unordtf2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/soft-fp/unordtf2.c b/soft-fp/unordtf2.c
index 1a85c252c1..3650cf461b 100644
--- a/soft-fp/unordtf2.c
+++ b/soft-fp/unordtf2.c
@@ -32,13 +32,18 @@
 
 CMPtype __unordtf2(TFtype a, TFtype b)
 {
+  FP_DECL_EX;
   FP_DECL_Q(A);
   FP_DECL_Q(B);
   CMPtype r;
 
+  FP_INIT_EXCEPTIONS;
   FP_UNPACK_RAW_Q(A, a);
   FP_UNPACK_RAW_Q(B, b);
   FP_CMP_UNORD_Q(r, A, B);
+  if (r && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
+    FP_SET_EXCEPTION(FP_EX_INVALID);
+  FP_HANDLE_EXCEPTIONS;
 
   return r;
 }