]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
s390x: Add CPU model for z15
authorAndreas Arnez <arnez@linux.ibm.com>
Thu, 27 Feb 2020 14:52:53 +0000 (15:52 +0100)
committerAndreas Arnez <arnez@linux.ibm.com>
Fri, 28 Feb 2020 14:34:22 +0000 (15:34 +0100)
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
VEX/pub/libvex.h
VEX/pub/libvex_s390x_common.h
auxprogs/s390-check-opcodes.pl
coregrind/m_machine.c
none/tests/s390x/Makefile.am
none/tests/s390x/ecag.stdout.exp-z15 [new file with mode: 0644]
tests/s390x_features.c

index 525e7000cf2573102ceac0ce3a0be39f2697b832..a470d9f8d31fa914ca142e94adf55f8fc4107359 100644 (file)
@@ -377,6 +377,9 @@ s390x_dirtyhelper_STFLE(VexGuestS390XState *guest_state, ULong *addr)
    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 359d10809cbcbdd229c8611c56ef15d049f4f953..6da26dcb5f85c5aa3edf85c02199c7e25dcbb774 100644 (file)
@@ -147,7 +147,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 d945a44722987472f184283eff621f785f00efca..289421677a357949be852e29922f76a956126e9c 100644 (file)
 #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 3f0ac1e632b7f971f48cc2fdf1dff7d7a005a1db..ecb4069ad5eb7e2ffcd0f08cc2cc85e55369bc95 100755 (executable)
@@ -28,7 +28,7 @@ my %csv_implemented = ();
 my %toir_implemented = ();
 my %toir_decoded = ();
 my %known_arch = map {($_ => 1)}
-    qw(g5 z900 z990 z9-109 z9-ec z10 z196 zEC12 z13 arch12);
+    qw(g5 z900 z990 z9-109 z9-ec z10 z196 zEC12 z13 arch12 arch13);
 
 # Patterns for identifying certain extended mnemonics that shall be
 # skipped in "s390-opc.txt" and "s390-opcodes.csv".
index 672a02124a70bdd78e9335b2a268f230e0407c6e..0fd1d21c78ea7adcdfaf4a2877e25612e43612c9 100644 (file)
@@ -581,6 +581,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 c5b07f7a2a547d4715c1596813ae75478f798158..a0fb92ef5766f026b25e36a03a9ed207ce7b2ae8 100644 (file)
@@ -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 \
diff --git a/none/tests/s390x/ecag.stdout.exp-z15 b/none/tests/s390x/ecag.stdout.exp-z15
new file mode 100644 (file)
index 0000000..b98d81b
--- /dev/null
@@ -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 baa349311f788eef8243dcfceb53926db335c745..25b98f3a3ab7280f43b8d948c8b3daa2c3ae16dc 100644 (file)
@@ -116,6 +116,8 @@ model_info models[] = {
    { "2965", "z13s"   },
    { "3906", "z14"    },
    { "3907", "z14 ZR1"},
+   { "8561", "z15"    },
+   { "8562", "z15"    },
 };