aboutsummaryrefslogtreecommitdiff
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
glibc-b22fc5f5651706304ac09305ac3ee5bf84516378.tar.gz
glibc-b22fc5f5651706304ac09305ac3ee5bf84516378.tar.bz2
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