[PATCH] s390: Add store CPU counter multiple instruction

Andreas Krebbel krebbel@linux.ibm.com
Tue Jun 23 07:57:05 GMT 2026


On 4/24/26 10:40 AM, Jens Remus wrote:
> 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>

Ok, Thanks!

Andreas

> ---
>   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(+)
>
> 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


More information about the Binutils mailing list