From b7f88156174f9bbf9c9393651b2ad0cdd3893e83 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Wed, 23 Dec 2020 13:53:34 +0530 Subject: [PATCH] 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 --- sysdeps/{i386 => x86}/fpu/s_fpclassifyl.c | 4 ++++ sysdeps/x86_64/fpu/s_fpclassifyl.c | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) rename sysdeps/{i386 => x86}/fpu/s_fpclassifyl.c (87%) delete mode 100644 sysdeps/x86_64/fpu/s_fpclassifyl.c diff --git a/sysdeps/i386/fpu/s_fpclassifyl.c b/sysdeps/x86/fpu/s_fpclassifyl.c similarity index 87% rename from sysdeps/i386/fpu/s_fpclassifyl.c rename to sysdeps/x86/fpu/s_fpclassifyl.c index 501312f51e..a48b7685c4 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 856854b0f5..0000000000 --- a/sysdeps/x86_64/fpu/s_fpclassifyl.c +++ /dev/null @@ -1,2 +0,0 @@ -#include - -- 2.43.5