valgrind/0001-s390x-Add-CPU-model-for-z15.patch
Dirk Mueller 4aab495c91 - Disable %check on %arm as it never passed - boo#1130395
- Add support for PR_CAPBSET_READ/DROP syscalls. Fixes false
  error messages with latest libcap 2.30.
  * 0001-Add-newer-constants-for-prctl-syscall.patch
  * 0002-Add-support-for-PR_CAPBSET_READ-and-_DROP-syscalls.patch

- add 0001-Fix-makefile-consistency-check.patch
  0001-s390x-Add-models-z14-and-z14-ZR1.patch
  0001-s390x-Clean-up-s390-check-opcodes.pl.patch
  0001-s390x-Add-CPU-model-for-z15.patch (bsc#1165834)

OBS-URL: https://build.opensuse.org/package/show/devel:tools/valgrind?expand=0&rev=215
2020-03-12 15:50:21 +00:00

136 lines
5.5 KiB
Diff

From 3a2711c659ac839934f13e0529e14d6c15325383 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <arnez@linux.ibm.com>
Date: Thu, 27 Feb 2020 15:52:53 +0100
Subject: [PATCH] s390x: Add CPU model for z15
Make the z15 CPU models known to Valgrind. Add test case output for z15
to the "ecag" test. Also ensure that the facility bits for CPU facilities
unsupported by Valgrind are unset, particularly for the new
deflate-conversion facility.
---
VEX/priv/guest_s390_helpers.c | 3 +++
VEX/pub/libvex.h | 3 ++-
VEX/pub/libvex_s390x_common.h | 3 +++
auxprogs/s390-check-opcodes.pl | 2 +-
coregrind/m_machine.c | 2 ++
none/tests/s390x/Makefile.am | 2 +-
none/tests/s390x/ecag.stdout.exp-z15 | 28 ++++++++++++++++++++++++++++
tests/s390x_features.c | 2 ++
8 files changed, 42 insertions(+), 3 deletions(-)
create mode 100644 none/tests/s390x/ecag.stdout.exp-z15
Index: valgrind-3.15.0/VEX/priv/guest_s390_helpers.c
===================================================================
--- valgrind-3.15.0.orig/VEX/priv/guest_s390_helpers.c
+++ valgrind-3.15.0/VEX/priv/guest_s390_helpers.c
@@ -379,6 +379,9 @@ s390x_dirtyhelper_STFLE(VexGuestS390XSta
s390_set_facility_bit(addr, S390_FAC_CTREXE, 0);
s390_set_facility_bit(addr, S390_FAC_TREXE, 0);
s390_set_facility_bit(addr, S390_FAC_MSA4, 0);
+ s390_set_facility_bit(addr, S390_FAC_VXE, 0);
+ s390_set_facility_bit(addr, S390_FAC_VXE2, 0);
+ s390_set_facility_bit(addr, S390_FAC_DFLT, 0);
return cc;
}
Index: valgrind-3.15.0/VEX/pub/libvex.h
===================================================================
--- valgrind-3.15.0.orig/VEX/pub/libvex.h
+++ valgrind-3.15.0/VEX/pub/libvex.h
@@ -148,7 +148,8 @@ typedef
#define VEX_S390X_MODEL_Z13S 13
#define VEX_S390X_MODEL_Z14 14
#define VEX_S390X_MODEL_Z14_ZR1 15
-#define VEX_S390X_MODEL_UNKNOWN 16 /* always last in list */
+#define VEX_S390X_MODEL_Z15 16
+#define VEX_S390X_MODEL_UNKNOWN 17 /* always last in list */
#define VEX_S390X_MODEL_MASK 0x3F
#define VEX_HWCAPS_S390X_LDISP (1<<6) /* Long-displacement facility */
Index: valgrind-3.15.0/VEX/pub/libvex_s390x_common.h
===================================================================
--- valgrind-3.15.0.orig/VEX/pub/libvex_s390x_common.h
+++ valgrind-3.15.0/VEX/pub/libvex_s390x_common.h
@@ -104,6 +104,9 @@
#define S390_FAC_TREXE 73 // transactional execution
#define S390_FAC_MSA4 77 // message-security-assist 4
#define S390_FAC_VX 129 // vector facility
+#define S390_FAC_VXE 135 // vector enhancements facility 1
+#define S390_FAC_VXE2 148 // vector enhancements facility 2
+#define S390_FAC_DFLT 151 // deflate-conversion facility
/*--------------------------------------------------------------*/
Index: valgrind-3.15.0/coregrind/m_machine.c
===================================================================
--- valgrind-3.15.0.orig/coregrind/m_machine.c
+++ valgrind-3.15.0/coregrind/m_machine.c
@@ -582,6 +582,8 @@ static UInt VG_(get_machine_model)(void)
{ "2965", VEX_S390X_MODEL_Z13S },
{ "3906", VEX_S390X_MODEL_Z14 },
{ "3907", VEX_S390X_MODEL_Z14_ZR1 },
+ { "8561", VEX_S390X_MODEL_Z15 },
+ { "8562", VEX_S390X_MODEL_Z15 },
};
Int model, n, fh;
Index: valgrind-3.15.0/none/tests/s390x/Makefile.am
===================================================================
--- valgrind-3.15.0.orig/none/tests/s390x/Makefile.am
+++ valgrind-3.15.0/none/tests/s390x/Makefile.am
@@ -39,7 +39,7 @@ EXTRA_DIST = \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
ecag.stdout.exp-z10ec ecag.stdout.exp-z196 ecag.stdout.exp-zec12 \
- ecag.stdout.exp-z13 ecag.stdout.exp-z14 \
+ ecag.stdout.exp-z13 ecag.stdout.exp-z14 ecag.stdout.exp-z15 \
op00.stderr.exp1 op00.stderr.exp2 op00.vgtest \
fixbr.vgtest fixbr.stderr.exp fixbr.stdout.exp \
fpext.vgtest fpext.stderr.exp fpext.stdout.exp \
Index: valgrind-3.15.0/none/tests/s390x/ecag.stdout.exp-z15
===================================================================
--- /dev/null
+++ valgrind-3.15.0/none/tests/s390x/ecag.stdout.exp-z15
@@ -0,0 +1,28 @@
+L1 topology: separate data and instruction; private
+L1 cache line size data: 256
+L1 cache line size insn: 256
+L1 total cachesize data: 131072
+L1 total cachesize insn: 131072
+L1 set. assoc. data: 8
+L1 set. assoc. insn: 8
+L2 topology: separate data and instruction; private
+L2 cache line size data: 256
+L2 cache line size insn: 256
+L2 total cachesize data: 4194304
+L2 total cachesize insn: 4194304
+L2 set. assoc. data: 8
+L2 set. assoc. insn: 8
+L3 topology: unified data and instruction; shared
+L3 cache line size data: 256
+L3 cache line size insn: 256
+L3 total cachesize data: 268435456
+L3 total cachesize insn: 268435456
+L3 set. assoc. data: 32
+L3 set. assoc. insn: 32
+L4 topology: unified data and instruction; shared
+L4 cache line size data: 256
+L4 cache line size insn: 256
+L4 total cachesize data: 1006632960
+L4 total cachesize insn: 1006632960
+L4 set. assoc. data: 60
+L4 set. assoc. insn: 60
Index: valgrind-3.15.0/tests/s390x_features.c
===================================================================
--- valgrind-3.15.0.orig/tests/s390x_features.c
+++ valgrind-3.15.0/tests/s390x_features.c
@@ -100,6 +100,8 @@ model_info models[] = {
{ "2965", "z13s" },
{ "3906", "z14" },
{ "3907", "z14 ZR1"},
+ { "8561", "z15" },
+ { "8562", "z15" },
};