binutils Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
s390

s390: Enforce register pair constraints for kimd, klmd, kmac

Assembler now enforces register pair constraints for s390 kimd, klmd, and kmac instructions.

This commit updates the s390 assembler to enforce architectural constraints on the register operands for kimd, klmd, and kmac instructions. It ensures that operand R2 designates an even-odd pair of general registers and is an even-numbered register (not 0), preventing specification exceptions.

In Details

This patch updates the s390 assembler to enforce the architectural requirements for kimd, klmd, and kmac instructions. It specifically targets operand R2, ensuring it is an even-numbered register that forms an even-odd pair, aligning with the z/Architecture Principles of Operation and preventing specification exceptions. The operand R1 is also checked for register 0 exclusion, though R2's pair constraint is the primary focus here.

For Context
s390
A family of mainframe computer architectures developed by IBM.
assembler
A program that translates assembly language into machine code.
register pair
On some architectures, certain instructions require two adjacent registers to function as a single, wider operand. For example, an even-numbered register and the immediately following odd-numbered register can form a pair.
specification exception
An error condition detected by the hardware when an instruction is executed with operands or conditions that violate the architecture's rules.
kimd
A s390 machine instruction.
klmd
A s390 machine instruction.
kmac
A s390 machine instruction.
Filed Under: s390assemblerarchitecture