about summary refs log tree commit diff
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2017-06-27 17:09:42 +0200
committerStefan Liebler <stli@linux.vnet.ibm.com>2017-06-27 17:09:42 +0200
commitf21f59124d8a4d22b20e7a926462937d89e8988e (patch)
tree630ddf143ec955df42dd42e08ced13e894f19a31
parente94c31035739b693c3699b3c4cad0206631fbee7 (diff)
downloadglibc-f21f59124d8a4d22b20e7a926462937d89e8988e.tar.gz
glibc-f21f59124d8a4d22b20e7a926462937d89e8988e.tar.xz
glibc-f21f59124d8a4d22b20e7a926462937d89e8988e.zip
S390: Add new hwcap values for new cpu architecture - arch12.
The new hwcap values indicate support for:
- Vector packed decimal facility
- Vector enhancements facility 1
- Guarded storage facility

Note: arch12 is NOT the official name of the new CPU.
It refers to the edition number of the Principle of Operations manual.

ChangeLog:

	* sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags):
	Add vxd, vxe, gs flag.
	* sysdeps/s390/dl-procinfo.h: Add HWCAP_S390_VXD, HWCAP_S390_VXE,
	HWCAP_S390_GS capability.
	* sysdeps/unix/sysv/linux/s390/bits/hwcap.h
	(HWCAP_S390_VXD, HWCAP_S390_VXE, HWCAP_S390_GS): Define.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/s390/dl-procinfo.c5
-rw-r--r--sysdeps/s390/dl-procinfo.h5
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/hwcap.h3
4 files changed, 19 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 88dde2be52..039366a470 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2017-06-27  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
+	* sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags):
+	Add vxd, vxe, gs flag.
+	* sysdeps/s390/dl-procinfo.h: Add HWCAP_S390_VXD, HWCAP_S390_VXE,
+	HWCAP_S390_GS capability.
+	* sysdeps/unix/sysv/linux/s390/bits/hwcap.h
+	(HWCAP_S390_VXD, HWCAP_S390_VXE, HWCAP_S390_GS): Define.
+
 2017-06-27  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/multiarch/memcmp-avx2-movbe.S (MEMCMP): Check
diff --git a/sysdeps/s390/dl-procinfo.c b/sysdeps/s390/dl-procinfo.c
index 4fcde8e889..436e205045 100644
--- a/sysdeps/s390/dl-procinfo.c
+++ b/sysdeps/s390/dl-procinfo.c
@@ -46,11 +46,12 @@
 #if !defined PROCINFO_DECL && defined SHARED
   ._dl_s390_cap_flags
 #else
-PROCINFO_CLASS const char _dl_s390_cap_flags[12][9]
+PROCINFO_CLASS const char _dl_s390_cap_flags[15][9]
 #endif
 #ifndef PROCINFO_DECL
 = {
-     "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh", "highgprs", "te", "vx"
+     "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh",
+     "highgprs", "te", "vx", "vxd", "vxe", "gs"
   }
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
diff --git a/sysdeps/s390/dl-procinfo.h b/sysdeps/s390/dl-procinfo.h
index c99789629a..1645cf3b48 100644
--- a/sysdeps/s390/dl-procinfo.h
+++ b/sysdeps/s390/dl-procinfo.h
@@ -21,7 +21,7 @@
 #define _DL_PROCINFO_H	1
 #include <ldsodefs.h>
 
-#define _DL_HWCAP_COUNT 12
+#define _DL_HWCAP_COUNT 15
 
 #define _DL_PLATFORMS_COUNT	8
 
@@ -51,6 +51,9 @@ enum
   HWCAP_S390_HIGH_GPRS = 1 << 9,
   HWCAP_S390_TE = 1 << 10,
   HWCAP_S390_VX = 1 << 11,
+  HWCAP_S390_VXD = 1 << 12,
+  HWCAP_S390_VXE = 1 << 13,
+  HWCAP_S390_GS = 1 << 14,
 };
 
 #define HWCAP_IMPORTANT (HWCAP_S390_ZARCH | HWCAP_S390_LDISP \
diff --git a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
index 6a7e4328c0..ecaa8d3e04 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
@@ -36,3 +36,6 @@
 #define HWCAP_S390_HIGH_GPRS    512
 #define HWCAP_S390_TE           1024
 #define HWCAP_S390_VX           2048
+#define HWCAP_S390_VXD          4096
+#define HWCAP_S390_VXE          8192
+#define HWCAP_S390_GS           16384