summaryrefslogtreecommitdiff
path: root/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch')
-rw-r--r--packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch49
1 files changed, 0 insertions, 49 deletions
diff --git a/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch b/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch
deleted file mode 100644
index 5213378..0000000
--- a/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Author: Joseph Myers <joseph@codesourcery.com>
-Date: 2016-10-24
-
-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.
-
-Note: this patch is not tested beyond verifying that the powerpc64
-code builds where it failed to build before the patch. In particular,
-I have not done execution testing (the systems I usually use for
-testing powerpc are pre-power6 so wouldn't use this code) or tested
-the powerpc32 change.
-
----
- sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi instead of cmpli.
- sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi instead of cmpli.
-
---- 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
-
---- 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