summary refs log tree commit diff
path: root/sysdeps/libm-i387
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-12 00:43:28 +0000
committerRoland McGrath <roland@gnu.org>1996-07-12 00:43:28 +0000
commite6c9a67a0bdb970f3b7f7ced6581b98cfe35797c (patch)
treef44ede8d7ebfe1f660126bebf0f2ef7009e04309 /sysdeps/libm-i387
parentadc6ff7f817959b0acf48de1bf0e7a7a6c0b901d (diff)
downloadglibc-e6c9a67a0bdb970f3b7f7ced6581b98cfe35797c.tar.gz
glibc-e6c9a67a0bdb970f3b7f7ced6581b98cfe35797c.tar.xz
glibc-e6c9a67a0bdb970f3b7f7ced6581b98cfe35797c.zip
* math/Makefile (calls): Add s_frexp, s_ldexp.
	(routines): Remove them and &f from here.

	* sys/socket.h: New file, wrapper for socket/sys/socket.h.

Thu Jul 11 00:22:40 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/libm-ieee754/s_frexpl.c: New file.  `long double'
	implementation of frexp() function.
	* sysdeps/libm-ieee754/s_ldexpl.c: New file.  `long double'
	implementation of ldexp() function.

	* sysdeps/libm-i387/s_isnanl.c (isnanl): Mask explicit one
	out before or'ing.
Diffstat (limited to 'sysdeps/libm-i387')
-rw-r--r--sysdeps/libm-i387/s_isnanl.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sysdeps/libm-i387/s_isnanl.c b/sysdeps/libm-i387/s_isnanl.c
index 768ea2164b..6a74b956cc 100644
--- a/sysdeps/libm-i387/s_isnanl.c
+++ b/sysdeps/libm-i387/s_isnanl.c
@@ -36,10 +36,11 @@ static char rcsid[] = "$NetBSD: $";
 	int32_t se,hx,lx;
 	GET_LDOUBLE_WORDS(se,hx,lx,x);
 	se = (se & 0x7fff) << 1;
-	lx |= hx;
-	/* The additional &hx is required because Intel's extended format
-	   has the normally implicit 1 explicit present.  Sigh!  */
-	se |= (u_int32_t)((lx|(-lx))&hx)>>31;
+	/* The additional & 0x7fffffff is required because Intel's
+	   extended format has the normally implicit 1 explicit
+	   present.  Sigh!  */
+	lx |= hx & 0x7fffffff;
+	se |= (u_int32_t)(lx|(-lx))>>31;
 	se = 0xfffe - se;
 	return (int)((u_int32_t)(se))>>16;
 }