Blame SOURCES/glibc-rh1418997.patch

147e83
commit 78b7adbaea643f2f213bb113e3ec933416a769a8
147e83
Author: Joseph Myers <joseph@codesourcery.com>
147e83
Date:   Tue Oct 25 15:54:16 2016 +0000
147e83
147e83
    Fix cmpli usage in power6 memset.
147e83
    
147e83
    Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
147e83
    with multi-arch enabled, I get the error:
147e83
    
147e83
    ../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
147e83
    ../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
147e83
    ../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
147e83
    ../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
147e83
    
147e83
    Indeed, cmpli is documented as a four-operand instruction, and looking
147e83
    at nearby code it seems likely cmpldi was intended.  This patch fixes
147e83
    this powerpc64 code accordingly, and makes a corresponding change to
147e83
    the powerpc32 code.
147e83
    
147e83
    Tested for powerpc, powerpc64 and powerpc64le by Tulio Magno Quites
147e83
    Machado Filho
147e83
    
147e83
            * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
147e83
            instead of cmpli.
147e83
            * sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi
147e83
            instead of cmpli.
147e83
147e83
diff -rup a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
147e83
--- a/sysdeps/powerpc/powerpc32/power6/memset.S	2017-03-06 13:52:27.000000000 -0500
147e83
+++ b/sysdeps/powerpc/powerpc32/power6/memset.S	2017-03-06 13:54:49.705201476 -0500
147e83
@@ -396,7 +396,7 @@ L(cacheAlignedx):
147e83
 /* A simple loop for the longer (>640 bytes) lengths.  This form limits
147e83
    the branch miss-predicted to exactly 1 at loop exit.*/
147e83
 L(cacheAligned512):
147e83
-	cmpli	cr1,rLEN,128
147e83
+	cmplwi	cr1,rLEN,128
147e83
 	blt	cr1,L(cacheAligned1)
147e83
 	dcbz	0,rMEMP
147e83
 	addi	rLEN,rLEN,-128
147e83
diff -rup a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S
147e83
--- a/sysdeps/powerpc/powerpc64/power6/memset.S	2017-03-06 13:52:22.000000000 -0500
147e83
+++ b/sysdeps/powerpc/powerpc64/power6/memset.S	2017-03-06 13:54:35.824216755 -0500
147e83
@@ -269,7 +269,7 @@ L(cacheAlignedx):
147e83
 /* A simple loop for the longer (>640 bytes) lengths.  This form limits
147e83
    the branch miss-predicted to exactly 1 at loop exit.*/
147e83
 L(cacheAligned512):
147e83
-	cmpli	cr1,rLEN,128
147e83
+	cmpldi	cr1,rLEN,128
147e83
 	blt	cr1,L(cacheAligned1)
147e83
 	dcbz	0,rMEMP
147e83
 	addi	rLEN,rLEN,-128