about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-05-06 12:54:05 +0000
committerUlrich Drepper <drepper@redhat.com>1998-05-06 12:54:05 +0000
commitb22fc5f5651706304ac09305ac3ee5bf84516378 (patch)
tree3c7b8ccb876ea0e4d75c511ce9abafbd7735ac38 /sysdeps
parent67c2095b5423e09351be1257701a87991aaccde6 (diff)
downloadglibc-b22fc5f5651706304ac09305ac3ee5bf84516378.tar.gz
glibc-b22fc5f5651706304ac09305ac3ee5bf84516378.tar.xz
glibc-b22fc5f5651706304ac09305ac3ee5bf84516378.zip
Update.
1998-05-06 12:51  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/fpu/bits/mathinline.h (pow): Use long long int for
	test for integer.

	* sysdeps/libm-i387/e_pow.S: Correctly shift double word.
	* sysdeps/libm-i387/e_powl.S: Likewise.

1998-03-31  Wolfram Gloger  <wmglo@dent.med.uni-muenchen.de>

	* malloc/malloc.c (chunk2mem_check, top_check): New functions.
	(malloc_check, free_check, realloc_check, memalign_check): Use
	them to improve overrun checking.  Overruns of a single byte and
	corruption of the top chunk are now detected much more reliably.

1998-05-06  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm-test.c (pow_test): Add test for special value from PR
	libc/590.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/fpu/bits/mathinline.h2
-rw-r--r--sysdeps/libm-i387/e_pow.S3
-rw-r--r--sysdeps/libm-i387/e_powl.S3
3 files changed, 5 insertions, 3 deletions
diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h
index 77b6cd5e51..e78c76986b 100644
--- a/sysdeps/i386/fpu/bits/mathinline.h
+++ b/sysdeps/i386/fpu/bits/mathinline.h
@@ -376,7 +376,7 @@ __inline_mathcode2 (fmod, __x, __y, \
 __inline_mathcode2 (pow, __x, __y, \
   register long double __value;						      \
   register long double __exponent;					      \
-  long int __p = (long int) __y;					      \
+  long long int __p = (long long int) __y;				      \
   if (__x == 0.0 && __y > 0.0)						      \
     return 0.0;								      \
   if (__y == (double) __p)						      \
diff --git a/sysdeps/libm-i387/e_pow.S b/sysdeps/libm-i387/e_pow.S
index 45c41b48ab..75ad211872 100644
--- a/sysdeps/libm-i387/e_pow.S
+++ b/sysdeps/libm-i387/e_pow.S
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -125,6 +125,7 @@ ENTRY(__ieee754_pow)
 	fmul	%st(1)		// x : ST*x
 	fxch
 5:	fmul	%st(0), %st	// x*x : ST*x
+	shrl	$1, %edx
 	movl	%eax, %ecx
 	orl	%edx, %ecx
 	jnz	6b
diff --git a/sysdeps/libm-i387/e_powl.S b/sysdeps/libm-i387/e_powl.S
index 0ea4829822..2e09dcc820 100644
--- a/sysdeps/libm-i387/e_powl.S
+++ b/sysdeps/libm-i387/e_powl.S
@@ -1,5 +1,5 @@
 /* ix87 specific implementation of pow function.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -125,6 +125,7 @@ ENTRY(__ieee754_powl)
 	fmul	%st(1)		// x : ST*x
 	fxch
 5:	fmul	%st(0), %st	// x*x : ST*x
+	shrl	$1, %edx
 	movl	%eax, %ecx
 	orl	%edx, %ecx
 	jnz	6b