aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@sourceware.org>2020-12-23 13:53:34 +0530
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2020-12-24 06:05:26 +0530
commitb7f88156174f9bbf9c9393651b2ad0cdd3893e83 (patch)
tree9f7ace9b383a8bcfd2b5c2905a3ee8ff590f67b0
parent84c202246b74c2f75b36985ceff506b7a152c2fb (diff)
downloadglibc-b7f88156174f9bbf9c9393651b2ad0cdd3893e83.zip
glibc-b7f88156174f9bbf9c9393651b2ad0cdd3893e83.tar.gz
glibc-b7f88156174f9bbf9c9393651b2ad0cdd3893e83.tar.bz2
x86 long double: Support pseudo numbers in fpclassifyl
Also move sysdeps/i386/fpu/s_fpclassifyl.c to sysdeps/x86/fpu/s_fpclassifyl.c and remove sysdeps/x86_64/fpu/s_fpclassifyl.c Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--sysdeps/x86/fpu/s_fpclassifyl.c (renamed from sysdeps/i386/fpu/s_fpclassifyl.c)4
-rw-r--r--sysdeps/x86_64/fpu/s_fpclassifyl.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/i386/fpu/s_fpclassifyl.c b/sysdeps/x86/fpu/s_fpclassifyl.c
index 501312f..a48b768 100644
--- a/sysdeps/i386/fpu/s_fpclassifyl.c
+++ b/sysdeps/x86/fpu/s_fpclassifyl.c
@@ -34,6 +34,10 @@ __fpclassifyl (long double x)
retval = FP_ZERO;
else if (ex == 0 && (hx & 0x80000000) == 0)
retval = FP_SUBNORMAL;
+ /* Pseudo-normals, i.e. pseudo-zero, pseudo-infinity and un-normals. They
+ behave like NaNs, so categorize them as such. */
+ else if ((hx & 0x80000000) == 0)
+ retval = FP_NAN;
else if (ex == 0x7fff)
retval = ((hx & 0x7fffffff) | lx) != 0 ? FP_NAN : FP_INFINITE;
diff --git a/sysdeps/x86_64/fpu/s_fpclassifyl.c b/sysdeps/x86_64/fpu/s_fpclassifyl.c
deleted file mode 100644
index 856854b..0000000
--- a/sysdeps/x86_64/fpu/s_fpclassifyl.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/i386/fpu/s_fpclassifyl.c>
-