diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_isnan.c | 17 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c | 40 |
3 files changed, 9 insertions, 51 deletions
diff --git a/ChangeLog b/ChangeLog index 59a6484296..d020bb9920 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2019-06-12 Adhemerval Zanella <adhemerval.zanella@linaro.org> + * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Move to ... + * sysdeps/ieee754/dbl-64/s_isnan.c: ... here and format code. + * benchtests/Makefile (bench-math): Add isnan, isinf, and isfinite. (CFLAGS-bench-isnan.c, CFLAGS-bench-isinf.c, CFLAGS-bench-isfinite.c): New rule. diff --git a/sysdeps/ieee754/dbl-64/s_isnan.c b/sysdeps/ieee754/dbl-64/s_isnan.c index 82723eeb8a..1f1535dea3 100644 --- a/sysdeps/ieee754/dbl-64/s_isnan.c +++ b/sysdeps/ieee754/dbl-64/s_isnan.c @@ -10,10 +10,6 @@ * ==================================================== */ -#if defined(LIBM_SCCS) && !defined(lint) -static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $"; -#endif - /* * isnan(x) returns 1 is x is nan, else 0; * no branching! @@ -23,17 +19,16 @@ static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $"; #include <math_private.h> #include <ldbl-classify-compat.h> #include <shlib-compat.h> +#include <stdint.h> -#undef __isnan int __isnan (double x) { - int32_t hx, lx; - EXTRACT_WORDS (hx, lx, x); - hx &= 0x7fffffff; - hx |= (uint32_t) (lx | (-lx)) >> 31; - hx = 0x7ff00000 - hx; - return (int) (((uint32_t) hx) >> 31); + int64_t hx; + EXTRACT_WORDS64 (hx, x); + hx &= UINT64_C (0x7fffffffffffffff); + hx = UINT64_C (0x7ff0000000000000) - hx; + return (int)(((uint64_t)hx)>>63); } hidden_def (__isnan) weak_alias (__isnan, isnan) diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c deleted file mode 100644 index cd805d157b..0000000000 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c +++ /dev/null @@ -1,40 +0,0 @@ -/* @(#)s_isnan.c 5.1 93/09/24 */ -/* - * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - * - * Developed at SunPro, a Sun Microsystems, Inc. business. - * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice - * is preserved. - * ==================================================== - */ - -/* - * isnan(x) returns 1 is x is nan, else 0; - * no branching! - */ - -#include <math.h> -#include <math_private.h> -#include <ldbl-classify-compat.h> -#include <shlib-compat.h> -#include <stdint.h> - -#undef __isnan -int __isnan(double x) -{ - int64_t hx; - EXTRACT_WORDS64(hx,x); - hx &= UINT64_C(0x7fffffffffffffff); - hx = UINT64_C(0x7ff0000000000000) - hx; - return (int)(((uint64_t)hx)>>63); -} -hidden_def (__isnan) -weak_alias (__isnan, isnan) -#ifdef NO_LONG_DOUBLE -# if LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23) -compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0); -# endif -weak_alias (__isnan, isnanl) -#endif |