s390: Add .insn pseudo-mnemonics rrf_a/b/c/d/e
Adds s390 assembler support for RRF instruction format variants (rrf_a/b/c/d/e) and fixes related test cases.
This patch introduces support for the RRF instruction format variants (rrf_a, rrf_b, rrf_c, rrf_d, rrf_e) as ‘.insn’ pseudo-mnemonics in the s390 GNU Assembler. It addresses special operand ordering and optional operands defined in the RRF format, as per the z/Architecture specification. The changes include updates to opcode definitions, documentation, and test cases for both ESA/390 and z/Architecture assemblers. Notably, RRF format predates z900 and was extended with an optional M4 mask field.
- proposer
Adds pseudo-mnemonics rrf_a/b/c/d/e to opcodes/s390-opc.c and documents them in gas/doc/c-s390.texi, while also fixing and adding test cases in gas/testsuite/gas/s390.
In Details
This patch adds support for the RRF instruction format and its variants (rrf_a through rrf_e) as '.insn' pseudo-mnemonics in the s390 GNU Assembler. It correctly implements the specified operand order and optional operands for RRF, which is unique in its documentation of this aspect. The patch also fixes existing ESA/390 tests and adds new z/Architecture tests for these instructions. The RRF format, originating before the z900, was later extended with an optional M4 mask.
- .insn
- An assembler directive that allows direct insertion of machine instructions using their opcode and operands, often used for undefined or specialized instructions.
- pseudo-mnemonic
- A symbolic name used in assembly language that corresponds to a machine instruction or a sequence of instructions, often used for convenience or to represent complex operations.
- RRF format
- A s390 instruction format that includes register-to-register operations, with specific rules for operand ordering and optional operands.
- z/Architecture
- IBM's 64-bit enterprise architecture, an evolution of the System/360 and System/370 lineage.