aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
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