File 0001-s390x-Add-CPU-model-for-z15.patch of Package valgrind

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"    },
 };
 
 
openSUSE Build Service is sponsored by