From 074b0f27d9b9cdfb58c5c7e7f4129546084582b2 Mon Sep 17 00:00:00 2001 From: Stefan Liebler Date: Tue, 24 May 2016 10:39:13 +0200 Subject: 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. --- ChangeLog | 5 +++++ sysdeps/s390/s390-64/memcpy.S | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d2b34a8478..1bacd7172e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-05-24 Stefan Liebler + + * sysdeps/s390/s390-64/memcpy.S (memcpy): + Use cghi instead of chi to compare 64bit value. + 2016-05-24 Stefan Liebler * sysdeps/s390/s390-32/memcpy.S (memcpy): diff --git a/sysdeps/s390/s390-64/memcpy.S b/sysdeps/s390/s390-64/memcpy.S index e84a3572cb..9d60a14ccc 100644 --- a/sysdeps/s390/s390-64/memcpy.S +++ b/sysdeps/s390/s390-64/memcpy.S @@ -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) -- cgit 1.4.1