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.24-289-g78b7adb
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Oct 2016 15:56:01 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.24-289-g78b7adb
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 78b7adbaea643f2f213bb113e3ec933416a769a8 (commit)
from 20973cf442dfbf94dc5b92cd78c1b91136db5266 (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=78b7adbaea643f2f213bb113e3ec933416a769a8
commit 78b7adbaea643f2f213bb113e3ec933416a769a8
Author: Joseph Myers <joseph@codesourcery.com>
Date: Tue Oct 25 15:54:16 2016 +0000
Fix cmpli usage in power6 memset.
Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
with multi-arch enabled, I get the error:
../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
Indeed, cmpli is documented as a four-operand instruction, and looking
at nearby code it seems likely cmpldi was intended. This patch fixes
this powerpc64 code accordingly, and makes a corresponding change to
the powerpc32 code.
Tested for powerpc, powerpc64 and powerpc64le by Tulio Magno Quites
Machado Filho
* sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
instead of cmpli.
* sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi
instead of cmpli.
diff --git a/ChangeLog b/ChangeLog
index c0fcabf..824ce66 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-10-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
+ instead of cmpli.
+ * sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi
+ instead of cmpli.
+
2016-10-24 Yury Norov <ynorov@caviumnetworks.com>
* sysdeps/unix/sysv/linux/fxstat.c: Remove useless cast.
diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
index b2a222e..d5dbe83 100644
--- a/sysdeps/powerpc/powerpc32/power6/memset.S
+++ b/sysdeps/powerpc/powerpc32/power6/memset.S
@@ -394,7 +394,7 @@ L(cacheAlignedx):
/* A simple loop for the longer (>640 bytes) lengths. This form limits
the branch miss-predicted to exactly 1 at loop exit.*/
L(cacheAligned512):
- cmpli cr1,rLEN,128
+ cmplwi cr1,rLEN,128
blt cr1,L(cacheAligned1)
dcbz 0,rMEMP
addi rLEN,rLEN,-128
diff --git a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S
index c2d1c4e..d445b1e 100644
--- a/sysdeps/powerpc/powerpc64/power6/memset.S
+++ b/sysdeps/powerpc/powerpc64/power6/memset.S
@@ -251,7 +251,7 @@ L(cacheAlignedx):
/* A simple loop for the longer (>640 bytes) lengths. This form limits
the branch miss-predicted to exactly 1 at loop exit.*/
L(cacheAligned512):
- cmpli cr1,rLEN,128
+ cmpldi cr1,rLEN,128
blt cr1,L(cacheAligned1)
dcbz 0,rMEMP
addi rLEN,rLEN,-128
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
sysdeps/powerpc/powerpc32/power6/memset.S | 2 +-
sysdeps/powerpc/powerpc64/power6/memset.S | 2 +-
3 files changed, 9 insertions(+), 2 deletions(-)
hooks/post-receive
--
GNU C Library master sources