GNU C Library master sources branch master updated. glibc-2.22-355-g4b71ce6

hjl@sourceware.org hjl@sourceware.org
Fri Oct 9 18:42:00 GMT 2015


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  4b71ce6c1a50c14c758f1dd7a2943f2ab9760e85 (commit)
      from  0fcc93bce950c8d0c440eee3f968fbeec22db784 (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=4b71ce6c1a50c14c758f1dd7a2943f2ab9760e85

commit 4b71ce6c1a50c14c758f1dd7a2943f2ab9760e85
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Oct 9 11:33:30 2015 -0700

    Update lrint/lrintf/lrintl for x32
    
    The x86_64 versions of lrint/lrintf/ lrintl are aliases for the long
    long versions which isn't correct for x32, where exceptions must respect
    overflow for 32-bit long.  Separate versions of the long functions for
    x32 that convert to 32-bit long and raise the right exceptions for that
    conversion, while keeping the aliases in the non-x32 case.
    
    Tested on x86_64 and x32.  There are no code changes in libm.so on
    x86_64.
    
    	* sysdeps/x86_64/fpu/s_llrint.S (__lrint): Add alias only if
    	__ILP32__ isn't defined.
    	(lrint): Likewise.
    	* sysdeps/x86_64/fpu/s_llrintf.S (__lrintf): Likewise.
    	(lrintf): Likewise.
    	* sysdeps/x86_64/fpu/s_llrintl.S (__lrintl): Likewise.
    	(lrintl): Likewise.
    	* sysdeps/x86_64/x32/fpu/s_lrint.S: New file.
    	* sysdeps/x86_64/x32/fpu/s_lrintf.S: Likewise.
    	* sysdeps/x86_64/x32/fpu/s_lrintl.S: Likewise.

diff --git a/ChangeLog b/ChangeLog
index 025a3d8..cf987c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2015-10-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/fpu/s_llrint.S (__lrint): Add alias only if
+	__ILP32__ isn't defined.
+	(lrint): Likewise.
+	* sysdeps/x86_64/fpu/s_llrintf.S (__lrintf): Likewise.
+	(lrintf): Likewise.
+	* sysdeps/x86_64/fpu/s_llrintl.S (__lrintl): Likewise.
+	(lrintl): Likewise.
+	* sysdeps/x86_64/x32/fpu/s_lrint.S: New file.
+	* sysdeps/x86_64/x32/fpu/s_lrintf.S: Likewise.
+	* sysdeps/x86_64/x32/fpu/s_lrintl.S: Likewise.
+
 2015-10-09  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
 	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
diff --git a/sysdeps/x86_64/fpu/s_llrint.S b/sysdeps/x86_64/fpu/s_llrint.S
index e822c06..07061a7 100644
--- a/sysdeps/x86_64/fpu/s_llrint.S
+++ b/sysdeps/x86_64/fpu/s_llrint.S
@@ -26,5 +26,7 @@ ENTRY(__llrint)
 	ret
 END(__llrint)
 weak_alias (__llrint, llrint)
+#ifndef __ILP32__
 strong_alias (__llrint, __lrint)
 weak_alias (__llrint, lrint)
+#endif
diff --git a/sysdeps/x86_64/fpu/s_llrintf.S b/sysdeps/x86_64/fpu/s_llrintf.S
index 6825511..a2e763c 100644
--- a/sysdeps/x86_64/fpu/s_llrintf.S
+++ b/sysdeps/x86_64/fpu/s_llrintf.S
@@ -26,5 +26,7 @@ ENTRY(__llrintf)
 	ret
 END(__llrintf)
 weak_alias (__llrintf, llrintf)
+#ifndef __ILP32__
 strong_alias (__llrintf, __lrintf)
 weak_alias (__llrintf, lrintf)
+#endif
diff --git a/sysdeps/x86_64/fpu/s_llrintl.S b/sysdeps/x86_64/fpu/s_llrintl.S
index abe3a5b..2b6c6f3 100644
--- a/sysdeps/x86_64/fpu/s_llrintl.S
+++ b/sysdeps/x86_64/fpu/s_llrintl.S
@@ -28,6 +28,7 @@ ENTRY(__llrintl)
 	ret
 END(__llrintl)
 weak_alias (__llrintl, llrintl)
+#ifndef __ILP32__
 strong_alias (__llrintl, __lrintl)
 weak_alias (__llrintl, lrintl)
-
+#endif
diff --git a/sysdeps/x86_64/fpu/s_llrintl.S b/sysdeps/x86_64/x32/fpu/s_lrint.S
similarity index 77%
copy from sysdeps/x86_64/fpu/s_llrintl.S
copy to sysdeps/x86_64/x32/fpu/s_lrint.S
index abe3a5b..4d183d1 100644
--- a/sysdeps/x86_64/fpu/s_llrintl.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrint.S
@@ -1,6 +1,6 @@
 /* Round argument to nearest integral value according to current rounding
    direction.
-   Copyright (C) 1997-2015 Free Software Foundation, Inc.
+   Copyright (C) 2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,14 +20,8 @@
 #include <sysdep.h>
 
 	.text
-ENTRY(__llrintl)
-	fldt	8(%rsp)
-	fistpll	-8(%rsp)
-	fwait
-	movq	-8(%rsp),%rax
+ENTRY(__lrint)
+	cvtsd2si %xmm0,%eax
 	ret
-END(__llrintl)
-weak_alias (__llrintl, llrintl)
-strong_alias (__llrintl, __lrintl)
-weak_alias (__llrintl, lrintl)
-
+END(__lrint)
+weak_alias (__lrint, lrint)
diff --git a/sysdeps/x86_64/fpu/s_llrintl.S b/sysdeps/x86_64/x32/fpu/s_lrintf.S
similarity index 77%
copy from sysdeps/x86_64/fpu/s_llrintl.S
copy to sysdeps/x86_64/x32/fpu/s_lrintf.S
index abe3a5b..4b3a54e 100644
--- a/sysdeps/x86_64/fpu/s_llrintl.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrintf.S
@@ -1,6 +1,6 @@
 /* Round argument to nearest integral value according to current rounding
    direction.
-   Copyright (C) 1997-2015 Free Software Foundation, Inc.
+   Copyright (C) 2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,14 +20,8 @@
 #include <sysdep.h>
 
 	.text
-ENTRY(__llrintl)
-	fldt	8(%rsp)
-	fistpll	-8(%rsp)
-	fwait
-	movq	-8(%rsp),%rax
+ENTRY(__lrintf)
+	cvtss2si %xmm0,%eax
 	ret
-END(__llrintl)
-weak_alias (__llrintl, llrintl)
-strong_alias (__llrintl, __lrintl)
-weak_alias (__llrintl, lrintl)
-
+END(__lrintf)
+weak_alias (__lrintf, lrintf)
diff --git a/sysdeps/x86_64/fpu/s_llrintl.S b/sysdeps/x86_64/x32/fpu/s_lrintl.S
similarity index 84%
copy from sysdeps/x86_64/fpu/s_llrintl.S
copy to sysdeps/x86_64/x32/fpu/s_lrintl.S
index abe3a5b..b10bf34 100644
--- a/sysdeps/x86_64/fpu/s_llrintl.S
+++ b/sysdeps/x86_64/x32/fpu/s_lrintl.S
@@ -20,14 +20,11 @@
 #include <sysdep.h>
 
 	.text
-ENTRY(__llrintl)
+ENTRY(__lrintl)
 	fldt	8(%rsp)
-	fistpll	-8(%rsp)
+	fistpl	-4(%rsp)
 	fwait
-	movq	-8(%rsp),%rax
+	movl	-4(%rsp),%eax
 	ret
-END(__llrintl)
-weak_alias (__llrintl, llrintl)
-strong_alias (__llrintl, __lrintl)
-weak_alias (__llrintl, lrintl)
-
+END(__lrintl)
+weak_alias (__lrintl, lrintl)

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

Summary of changes:
 ChangeLog                         |   13 +++++++++++++
 sysdeps/x86_64/fpu/s_llrint.S     |    2 ++
 sysdeps/x86_64/fpu/s_llrintf.S    |    2 ++
 sysdeps/x86_64/fpu/s_llrintl.S    |    3 ++-
 sysdeps/x86_64/x32/fpu/s_lrint.S  |   27 +++++++++++++++++++++++++++
 sysdeps/x86_64/x32/fpu/s_lrintf.S |   27 +++++++++++++++++++++++++++
 sysdeps/x86_64/x32/fpu/s_lrintl.S |   30 ++++++++++++++++++++++++++++++
 7 files changed, 103 insertions(+), 1 deletions(-)
 create mode 100644 sysdeps/x86_64/x32/fpu/s_lrint.S
 create mode 100644 sysdeps/x86_64/x32/fpu/s_lrintf.S
 create mode 100644 sysdeps/x86_64/x32/fpu/s_lrintl.S


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



More information about the Glibc-cvs mailing list