This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.14-369-gba1a0d5


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  ba1a0d5938b53454a249d679ab90baf541cd91ad (commit)
      from  e9b25bd9303436af1de65afea4e984b640b2c81d (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=ba1a0d5938b53454a249d679ab90baf541cd91ad

commit ba1a0d5938b53454a249d679ab90baf541cd91ad
Author: Ulrich Drepper <drepper@gmail.com>
Date:   Sat Oct 15 18:09:12 2011 -0400

    No need for boundary case handling in x86-32 __ieee_logf

diff --git a/ChangeLog b/ChangeLog
index 3e71646..44580a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-10-15  Ulrich Drepper  <drepper@gmail.com>
 
+	* sysdeps/i386/i686/fpu/e_logf.S: No need for the fyl2xp1 use, fyl2x
+	is sufficient, at least on modern CPUs.
+
 	* ctype/ctype-info.c (__ctype_init): Define.
 	* include/ctype.h (__ctype_init): Declare.
 	(__ctype_b_loc): The variable is always initialized.
diff --git a/sysdeps/i386/i686/fpu/e_logf.S b/sysdeps/i386/i686/fpu/e_logf.S
index 64f8807..6fd39d5 100644
--- a/sysdeps/i386/i686/fpu/e_logf.S
+++ b/sysdeps/i386/i686/fpu/e_logf.S
@@ -3,34 +3,11 @@
  * Public domain.
  * Adapted for float by Ulrich Drepper <drepper@cygnus.com>.
  *
- * 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_logf)
@@ -38,22 +15,6 @@ ENTRY(__ieee754_logf)
 	flds	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
 
@@ -64,18 +25,6 @@ END (__ieee754_logf)
 ENTRY(__logf_finite)
 	fldln2			// log(2)
 	flds	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(__logf_finite)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                      |    3 ++
 sysdeps/i386/i686/fpu/e_logf.S |   53 +---------------------------------------
 2 files changed, 4 insertions(+), 52 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]