S390: Use mvcle for copies > 1MB on 32bit with default memcpy variant.
authorStefan Liebler <stli@linux.vnet.ibm.com>
Tue, 24 May 2016 08:39:13 +0000 (10:39 +0200)
committerStefan Liebler <stli@linux.vnet.ibm.com>
Tue, 24 May 2016 08:39:13 +0000 (10:39 +0200)
If more than 255 bytes should be copied, the algorithm jumps away.
Before this patch, it jumps to the mvc-loop (.L_G5_12).
Now it jumps first to the "> 1MB" check, which jumps away to
__memcpy_mvcle. Otherwise, the mvc-loop (.L_G5_12) copies the bytes.

ChangeLog:

* sysdeps/s390/s390-32/memcpy.S (memcpy):
Jump to 1MB check before executing mvc-loop.

ChangeLog
sysdeps/s390/s390-32/memcpy.S

index 2b51267..d2b34a8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-24  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
+       * sysdeps/s390/s390-32/memcpy.S (memcpy):
+       Jump to 1MB check before executing mvc-loop.
+
 2016-05-24  Florian Weimer  <fweimer@redhat.com>
 
        [BZ #6527]
index 62ecbbf..2ac51ab 100644 (file)
@@ -42,7 +42,7 @@ ENTRY(memcpy)
        srl     %r5,8
        ltr     %r5,%r5
        lr      %r1,%r2
-       jne     .L_G5_12
+       jne     .L_G5_13
        ex      %r4,.L_G5_17-.L_G5_16(%r13)
 .L_G5_4:
        l       %r13,52(%r15)