about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2016-05-24 10:39:13 +0200
committerStefan Liebler <stli@linux.vnet.ibm.com>2016-05-24 10:39:13 +0200
commit04bb21ac93e90d7696bcaf8febe2b2dd2d83585a (patch)
tree5e4d119652c416d213685c8e1295855794bab80f
parentdea39b13e2958a7f0e75b5594a06d97d61cc439f (diff)
downloadglibc-04bb21ac93e90d7696bcaf8febe2b2dd2d83585a.tar.gz
glibc-04bb21ac93e90d7696bcaf8febe2b2dd2d83585a.tar.xz
glibc-04bb21ac93e90d7696bcaf8febe2b2dd2d83585a.zip
S390: Use mvcle for copies > 1MB on 32bit with default memcpy variant.
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.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/s390/s390-32/memcpy.S2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b51267194..d2b34a8478 100644
--- 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]
diff --git a/sysdeps/s390/s390-32/memcpy.S b/sysdeps/s390/s390-32/memcpy.S
index 62ecbbf619..2ac51ab62e 100644
--- a/sysdeps/s390/s390-32/memcpy.S
+++ b/sysdeps/s390/s390-32/memcpy.S
@@ -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)