diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2012-09-06 10:28:52 +0200 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2012-09-06 10:28:52 +0200 |
commit | 14c996c83b265c31aae5f64480d393fa5d3364f3 (patch) | |
tree | 8f136c470516786769a298c72faf2fd44c483a0a /sysdeps/s390/s390-32/multiarch | |
parent | 1415687eacbfff02e8bba2c93b5acce41609e93b (diff) | |
download | glibc-14c996c83b265c31aae5f64480d393fa5d3364f3.tar.gz glibc-14c996c83b265c31aae5f64480d393fa5d3364f3.tar.xz glibc-14c996c83b265c31aae5f64480d393fa5d3364f3.zip |
S/390: Fix optimized mem* running on 31 bit kernels.
Diffstat (limited to 'sysdeps/s390/s390-32/multiarch')
-rw-r--r-- | sysdeps/s390/s390-32/multiarch/Makefile | 6 | ||||
-rw-r--r-- | sysdeps/s390/s390-32/multiarch/ifunc-resolve.c | 3 | ||||
-rw-r--r-- | sysdeps/s390/s390-32/multiarch/memcmp.S | 2 | ||||
-rw-r--r-- | sysdeps/s390/s390-32/multiarch/memcpy.S | 2 | ||||
-rw-r--r-- | sysdeps/s390/s390-32/multiarch/memset.S | 2 |
5 files changed, 8 insertions, 7 deletions
diff --git a/sysdeps/s390/s390-32/multiarch/Makefile b/sysdeps/s390/s390-32/multiarch/Makefile index 5b0cd49c72..9baeecda64 100644 --- a/sysdeps/s390/s390-32/multiarch/Makefile +++ b/sysdeps/s390/s390-32/multiarch/Makefile @@ -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 diff --git a/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c b/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c index 6a86c03c25..f1bf8a3dc4 100644 --- a/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c +++ b/sysdeps/s390/s390-32/multiarch/ifunc-resolve.c @@ -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; \ diff --git a/sysdeps/s390/s390-32/multiarch/memcmp.S b/sysdeps/s390/s390-32/multiarch/memcmp.S index cd8ea86b0c..9ca88911c8 100644 --- a/sysdeps/s390/s390-32/multiarch/memcmp.S +++ b/sysdeps/s390/s390-32/multiarch/memcmp.S @@ -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 diff --git a/sysdeps/s390/s390-32/multiarch/memcpy.S b/sysdeps/s390/s390-32/multiarch/memcpy.S index 40f4acfbb6..7b85602aa3 100644 --- a/sysdeps/s390/s390-32/multiarch/memcpy.S +++ b/sysdeps/s390/s390-32/multiarch/memcpy.S @@ -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 diff --git a/sysdeps/s390/s390-32/multiarch/memset.S b/sysdeps/s390/s390-32/multiarch/memset.S index 5ce7b4de83..ba43d671c2 100644 --- a/sysdeps/s390/s390-32/multiarch/memset.S +++ b/sysdeps/s390/s390-32/multiarch/memset.S @@ -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) |