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.23-441-gdf179d8


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  df179d88080ad7a733edccc655cf5f6bbec6f8fc (commit)
      from  9bd3ef8e19b19fb3cfcf99a33a1493035891b990 (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=df179d88080ad7a733edccc655cf5f6bbec6f8fc

commit df179d88080ad7a733edccc655cf5f6bbec6f8fc
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Jun 8 22:24:06 2016 +0000

    Fix i386/x86_64 logl (sNaN) (bug 20227).
    
    The i386/x86_64 versions of logl return sNaN for sNaN input.  This
    patch fixes them to add a NaN input to itself so that qNaN is returned
    in this case.
    
    Tested for x86_64 and x86 (including a build for i586 to cover the
    non-i686 logl version).
    
    	[BZ #20227]
    	* sysdeps/i386/fpu/e_logl.S (__ieee754_logl): Add NaN input to
    	itself.
    	* sysdeps/i386/i686/fpu/e_logl.S (__ieee754_logl): Likewise.
    	* sysdeps/x86_64/fpu/e_logl.S (__ieee754_logl): Likewise.
    	* math/libm-test.inc (log_test_data): Add sNaN tests.

diff --git a/ChangeLog b/ChangeLog
index 0d140aa..82c698d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2016-06-08  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #20227]
+	* sysdeps/i386/fpu/e_logl.S (__ieee754_logl): Add NaN input to
+	itself.
+	* sysdeps/i386/i686/fpu/e_logl.S (__ieee754_logl): Likewise.
+	* sysdeps/x86_64/fpu/e_logl.S (__ieee754_logl): Likewise.
+	* math/libm-test.inc (log_test_data): Add sNaN tests.
+
 	[BZ #20226]
 	* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL): Add NaN argument to
 	itself.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 35a256c..c16009b 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -8998,6 +8998,8 @@ static const struct test_f_f_data log_test_data[] =
     TEST_f_f (log, plus_infty, plus_infty, ERRNO_UNCHANGED),
     TEST_f_f (log, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
     TEST_f_f (log, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+    TEST_f_f (log, snan_value, qnan_value, INVALID_EXCEPTION),
+    TEST_f_f (log, -snan_value, qnan_value, INVALID_EXCEPTION),
 
     AUTO_TESTS_f_f (log),
   };
diff --git a/sysdeps/i386/fpu/e_logl.S b/sysdeps/i386/fpu/e_logl.S
index 7a6d370..53127d7 100644
--- a/sysdeps/i386/fpu/e_logl.S
+++ b/sysdeps/i386/fpu/e_logl.S
@@ -67,6 +67,7 @@ ENTRY(__ieee754_logl)
 3:	jp	4b		// in case x is +-Inf
 	fstp	%st(1)
 	fstp	%st(1)
+	fadd	%st(0)
 	ret
 END (__ieee754_logl)
 
diff --git a/sysdeps/i386/i686/fpu/e_logl.S b/sysdeps/i386/i686/fpu/e_logl.S
index e9ecbcd..7e3bc8d 100644
--- a/sysdeps/i386/i686/fpu/e_logl.S
+++ b/sysdeps/i386/i686/fpu/e_logl.S
@@ -64,6 +64,7 @@ ENTRY(__ieee754_logl)
 	ret
 
 3:	fstp	%st(1)
+	fadd	%st(0)
 	ret
 END (__ieee754_logl)
 
diff --git a/sysdeps/x86_64/fpu/e_logl.S b/sysdeps/x86_64/fpu/e_logl.S
index dbe6fd5..0d3576f 100644
--- a/sysdeps/x86_64/fpu/e_logl.S
+++ b/sysdeps/x86_64/fpu/e_logl.S
@@ -66,6 +66,7 @@ ENTRY(__ieee754_logl)
 	jnz	4b		// in case x is +-Inf
 	fstp	%st(1)
 	fstp	%st(1)
+	fadd	%st(0)
 	ret
 END (__ieee754_logl)
 

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

Summary of changes:
 ChangeLog                      |    7 +++++++
 math/libm-test.inc             |    2 ++
 sysdeps/i386/fpu/e_logl.S      |    1 +
 sysdeps/i386/i686/fpu/e_logl.S |    1 +
 sysdeps/x86_64/fpu/e_logl.S    |    1 +
 5 files changed, 12 insertions(+), 0 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]