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.
This commit is contained in:
Stefan Liebler 2016-05-24 10:39:13 +02:00
parent dea39b13e2
commit 04bb21ac93
2 changed files with 6 additions and 1 deletions

View File

@ -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]

View 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)