From: Jens Remus Date: Mon, 6 Jul 2026 14:11:50 +0000 (+0200) Subject: s390: Add store CPU counter multiple instruction X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ad4b65ea02dc44e29ce3443494e422b87049ffd;p=thirdparty%2Fbinutils-gdb.git s390: Add store CPU counter multiple instruction 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 --- diff --git a/gas/testsuite/gas/s390/zarch-z13.d b/gas/testsuite/gas/s390/zarch-z13.d index d768e0b9db5..54c42f858f9 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 8c2fb706e0c..370aed0830a 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 6511059400b..d40fa8c70cf 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