S/390: Fix optimized mem* running on 31 bit kernels.

This commit is contained in:
Andreas Krebbel 2012-09-06 10:28:52 +02:00
parent 1415687eac
commit 14c996c83b
6 changed files with 19 additions and 7 deletions

View File

@ -1,3 +1,14 @@
2012-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* sysdeps/s390/s390-32/multiarch/Makefile: Remove -mzarch
assembler flag.
* sysdeps/s390/s390-32/multiarch/memcmp.S: Use .machinemode
zarch_nohighgprs around the zarch optimized routines.
* sysdeps/s390/s390-32/multiarch/memcpy.S: Likewise.
* sysdeps/s390/s390-32/multiarch/memset.S: Likewise.
* sysdeps/s390/s390-32/multiarch/ifunc-resolve.c: Explicitly check
for zarch.
2012-09-05 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/fpu/libm-test-ulps: Update.

View File

@ -1,9 +1,3 @@
ASFLAGS-.o += -Wa,-mzarch
ASFLAGS-.os += -Wa,-mzarch
ASFLAGS-.op += -Wa,-mzarch
ASFLAGS-.og += -Wa,-mzarch
ASFLAGS-.ob += -Wa,-mzarch
ASFLAGS-.oS += -Wa,-mzarch
ifeq ($(subdir),string)
sysdep_routines += ifunc-resolve memset memcpy memcmp
endif

View File

@ -41,7 +41,8 @@
void *resolve_##FUNC (unsigned long int dl_hwcap) \
{ \
if ((dl_hwcap & HWCAP_S390_STFLE) \
&& (dl_hwcap & HWCAP_S390_HIGH_GPRS)) /* Implies zarch */ \
&& (dl_hwcap & HWCAP_S390_ZARCH) \
&& (dl_hwcap & HWCAP_S390_HIGH_GPRS)) \
{ \
/* We want just 1 double word to be returned. */ \
register unsigned long reg0 asm("0") = 0; \

View File

@ -31,6 +31,7 @@
ENTRY(memcmp_z196)
.machine "z196"
.machinemode "zarch_nohighgprs"
ltr %r4,%r4
je .L_Z196_4
ahi %r4,-1
@ -64,6 +65,7 @@ END(memcmp_z196)
ENTRY(memcmp_z10)
.machine "z10"
.machinemode "zarch_nohighgprs"
ltr %r4,%r4
je .L_Z10_4
ahi %r4,-1

View File

@ -31,6 +31,7 @@
ENTRY(memcpy_z196)
.machine "z196"
.machinemode "zarch_nohighgprs"
llgfr %r4,%r4
ltgr %r4,%r4
je .L_Z196_4
@ -61,6 +62,7 @@ END(memcpy_z196)
ENTRY(memcpy_z10)
.machine "z10"
.machinemode "zarch_nohighgprs"
llgfr %r4,%r4
cgije %r4,0,.L_Z10_4
aghi %r4,-1

View File

@ -31,6 +31,7 @@
ENTRY(memset_z196)
.machine "z196"
.machinemode "zarch_nohighgprs"
llgfr %r4,%r4
ltgr %r4,%r4
je .L_Z196_4
@ -62,6 +63,7 @@ END(memset_z196)
ENTRY(memset_z10)
.machine "z10"
.machinemode "zarch_nohighgprs"
llgfr %r4,%r4
cgije %r4,0,.L_Z10_4
stc %r3,0(%r2)