This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.14-373-g79b195b
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 16 Oct 2011 02:22:04 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.14-373-g79b195b
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 79b195b55af84a9044dfb26ebdc49d9f308829af (commit)
from d4a285692ae21debd4518a6d4980fa7e36d104b5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=79b195b55af84a9044dfb26ebdc49d9f308829af
commit 79b195b55af84a9044dfb26ebdc49d9f308829af
Author: Ulrich Drepper <drepper@gmail.com>
Date: Sat Oct 15 22:21:53 2011 -0400
No need for boundary case handling in x86-32 __ieee_log
diff --git a/ChangeLog b/ChangeLog
index 426b69f..96ebe99 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2011-10-15 Ulrich Drepper <drepper@gmail.com>
+ * sysdeps/i386/i686/fpu/e_log.S: No need for the fyl2xp1 use, fyl2x
+ is sufficient, at least on modern CPUs.
+
* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: New file.
* sysdeps/ieee754/dbl-64/e_cosh.c: Cleanup.
diff --git a/sysdeps/i386/i686/fpu/e_log.S b/sysdeps/i386/i686/fpu/e_log.S
index c6524b1..73060b0 100644
--- a/sysdeps/i386/i686/fpu/e_log.S
+++ b/sysdeps/i386/i686/fpu/e_log.S
@@ -2,34 +2,11 @@
* Written by J.T. Conklin <jtc@netbsd.org>.
* Public domain.
*
- * Changed to use fyl2xp1 for values near 1, <drepper@cygnus.com>.
* Adapted for i686 instructions.
*/
#include <machine/asm.h>
-#ifdef __ELF__
- .section .rodata.cst8,"aM",@progbits,8
-#else
- .text
-#endif
- .p2align 3
- ASM_TYPE_DIRECTIVE(one,@object)
-one: .double 1.0
- ASM_SIZE_DIRECTIVE(one)
- /* It is not important that this constant is precise. It is only
- a value which is known to be on the safe side for using the
- fyl2xp1 instruction. */
- ASM_TYPE_DIRECTIVE(limit,@object)
-limit: .double 0.29
- ASM_SIZE_DIRECTIVE(limit)
-
-
-#ifdef PIC
-# define MO(op) op##@GOTOFF(%edx)
-#else
-# define MO(op) op
-#endif
.text
ENTRY(__ieee754_log)
@@ -37,22 +14,6 @@ ENTRY(__ieee754_log)
fldl 4(%esp) // x : log(2)
fucomi %st
jp 3f
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- fld %st // x : x : log(2)
- fsubl MO(one) // x-1 : x : log(2)
- fld %st // x-1 : x-1 : x : log(2)
- fabs // |x-1| : x-1 : x : log(2)
- fld MO(limit) // 0.29 : |x-1| : x-1 : x : log(2)
- fcomip %st(1) // |x-1| : x-1 : x : log(2)
- fstp %st(0) // x-1 : x : log(2)
- jc 2f
- fstp %st(1) // x-1 : log(2)
- fyl2xp1 // log(x)
- ret
-
-2: fstp %st(0) // x : log(2)
fyl2x // log(x)
ret
@@ -63,18 +24,6 @@ END (__ieee754_log)
ENTRY(__log_finite)
fldln2 // log(2)
fldl 4(%esp) // x : log(2)
-#ifdef PIC
- LOAD_PIC_REG (dx)
-#endif
- fld %st // x : x : log(2)
- fsubl MO(one) // x-1 : x : log(2)
- fld %st // x-1 : x-1 : x : log(2)
- fabs // |x-1| : x-1 : x : log(2)
- fld MO(limit) // 0.29 : |x-1| : x-1 : x : log(2)
- fcomip %st(1) // |x-1| : x-1 : x : log(2)
- fstp %st(0) // x-1 : x : log(2)
- jc 2b
- fstp %st(1) // x-1 : log(2)
- fyl2xp1 // log(x)
+ fyl2x // log(x)
ret
END(__log_finite)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 3 ++
sysdeps/i386/i686/fpu/e_log.S | 53 +----------------------------------------
2 files changed, 4 insertions(+), 52 deletions(-)
hooks/post-receive
--
GNU C Library master sources