s390: Add store CPU counter multiple instruction

Message ID 20260424084026.2959245-1-jremus@linux.ibm.com
State New
Headers
Series s390: Add store CPU counter multiple instruction |

Commit Message

Jens Remus April 24, 2026, 8:40 a.m. UTC
  IBM z13 introduced the "store CPU counter multiple" (stcctm) instruction
with the Store-CPU-Counter-Multiple Facility, which is part of the
CPU-Measurement Facilities (CPUMF) [1].

While at it add a comment to the s390 opcode table for the existing
CPUMF instructions.

[1]: The Load-Program-Parameter and the CPU-Measurement Facilities,
     SA23-2260-08,
     https://www.ibm.com/docs/en/module_1678991624569/pdf/SA23-2260-08.pdf

opcodes/
	* s390-opc.txt (stcctm): Add store CPU counter multiple
	instruction.  Add comment on CPUMF instructions.

gas/testsuite/
	* gas/s390/zarch-z13.d (stcctm): Add test for store CPU counter
	multiple instruction.
	* gas/s390/zarch-z13.s (stcctm): Likewise.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
---
 gas/testsuite/gas/s390/zarch-z13.d | 2 ++
 gas/testsuite/gas/s390/zarch-z13.s | 1 +
 opcodes/s390-opc.txt               | 8 ++++++++
 3 files changed, 11 insertions(+)
  

Patch

diff --git a/gas/testsuite/gas/s390/zarch-z13.d b/gas/testsuite/gas/s390/zarch-z13.d
index d768e0b9db59..54c42f858f94 100644
--- a/gas/testsuite/gas/s390/zarch-z13.d
+++ b/gas/testsuite/gas/s390/zarch-z13.d
@@ -684,3 +684,5 @@  Disassembly of section .text:
 .*:	e7 f6 9f a0 d0 0e [	]*vst	%v15,4000\(%r6,%r9\),13
 .*:	e7 f1 6f a0 04 3e [	]*vstm	%v15,%v17,4000\(%r6\)
 .*:	e7 f1 6f a0 d4 3e [	]*vstm	%v15,%v17,4000\(%r6\),13
+.*:	eb 13 26 ce 05 17 [	 ]*stcctm	%r1,3,22222\(%r2\)
+#?.*:	07 07 [	 ]*nopr	%r7
diff --git a/gas/testsuite/gas/s390/zarch-z13.s b/gas/testsuite/gas/s390/zarch-z13.s
index 8c2fb706e0c0..370aed0830aa 100644
--- a/gas/testsuite/gas/s390/zarch-z13.s
+++ b/gas/testsuite/gas/s390/zarch-z13.s
@@ -678,3 +678,4 @@  foo:
 	vst		%v15,4000(%r6,%r9),13
 	vstm		%v15,%v17,4000(%r6)
 	vstm		%v15,%v17,4000(%r6),13
+	stcctm	%r1,3,22222(2)
diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
index 6511059400b8..d40fa8c70cf4 100644
--- a/opcodes/s390-opc.txt
+++ b/opcodes/s390-opc.txt
@@ -991,6 +991,10 @@  b9a2 ptf RRE_R0 "perform topology function" z10 zarch
 b9af pfmf RRE_RR "perform frame management function" z10 zarch
 b9bf trte RRF_U0RER "translate and test extended" z10 zarch optparm
 b9bd trtre RRF_U0RER "translate and test reverse extended" z10 zarch optparm
+
+# CPUMF: CPU-Measurement Counter Facility, CPU-Measurement Sampling Facility,
+# Load-Program-Parameter Facility
+
 b2ed ecpga RRE_RR "extract coprocessor-group address" z10 zarch
 b2e4 ecctr RRE_RR "extract cpu counter" z10 zarch
 b2e5 epctr RRE_RR "extract peripheral counter" z10 zarch
@@ -1713,6 +1717,10 @@  e70000000036 vlm VRS_VVRDU "vector load multiple" z13 zarch optparm,vx
 e7000000000e vst VRX_VRRDU "vector store" z13 zarch optparm,vx
 e7000000003e vstm VRS_VVRDU "vector store multiple" z13 zarch optparm,vx
 
+# CPUMF: Store-CPU-Counter-Multiple Facility
+
+eb0000000017 stcctm RSY_RURD "store cpu counter multiple" z13 zarch
+
 # arch12 instructions
 
 # Vector Enhancements Facility 1