aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2012-09-06 10:28:52 +0200
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2012-09-06 10:28:52 +0200
commit14c996c83b265c31aae5f64480d393fa5d3364f3 (patch)
tree8f136c470516786769a298c72faf2fd44c483a0a
parent1415687eacbfff02e8bba2c93b5acce41609e93b (diff)
downloadglibc-14c996c83b265c31aae5f64480d393fa5d3364f3.tar
glibc-14c996c83b265c31aae5f64480d393fa5d3364f3.tar.gz
glibc-14c996c83b265c31aae5f64480d393fa5d3364f3.tar.bz2
glibc-14c996c83b265c31aae5f64480d393fa5d3364f3.zip
S/390: Fix optimized mem* running on 31 bit kernels.
-rw-r--r--ChangeLog11
-rw-r--r--sysdeps/s390/s390-32/multiarch/Makefile6
-rw-r--r--sysdeps/s390/s390-32/multiarch/ifunc-resolve.c3
-rw-r--r--sysdeps/s390/s390-32/multiarch/memcmp.S2
-rw-r--r--sysdeps/s390/s390-32/multiarch/memcpy.S2
-rw-r--r--sysdeps/s390/s390-32/multiarch/memset.S2
6 files changed, 19 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index c69a7c4c6f..b978444773 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
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)