S390: Use 64bit instruction to check for copies of > 1MB with mvcle.

The __memcpy_default variant on s390 64bit calculates the number of
256byte blocks in a 64bit register and checks, if they exceed 1MB
to jump to mvcle. Otherwise a mvc-loop is used. The compare-instruction
only checks a 32bit value.
This patch uses a 64bit compare.

ChangeLog:

	* sysdeps/s390/s390-64/memcpy.S (memcpy):
	Use cghi instead of chi to compare 64bit value.
This commit is contained in:
Stefan Liebler 2016-05-24 10:39:13 +02:00
parent 04bb21ac93
commit 074b0f27d9
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-64/memcpy.S (memcpy):
Use cghi instead of chi to compare 64bit value.
2016-05-24 Stefan Liebler <stli@linux.vnet.ibm.com>
* sysdeps/s390/s390-32/memcpy.S (memcpy):

View File

@ -47,7 +47,7 @@ ENTRY(memcpy)
.L_Z900_4:
br %r14
.L_Z900_13:
chi %r5,4096 # Switch to mvcle for copies >1MB
cghi %r5,4096 # Switch to mvcle for copies >1MB
jh __memcpy_mvcle
.L_Z900_12:
mvc 0(256,%r1),0(%r3)