IBM Z: Add support for HLASM extended mnemonics
authorAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 3 Dec 2020 15:31:15 +0000 (16:31 +0100)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Thu, 3 Dec 2020 15:51:12 +0000 (16:51 +0100)
commitb10b530a4566888492ac693773e1e35f66c4b7c4
treed94e892ccb7730ce0811f25db182b02a69f20c21
parent9a5c1ed81d71d623b471e0be7c96680c43d86652
IBM Z: Add support for HLASM extended mnemonics

Add extended mnemonics used in the HLASM assembler.  All of them are
just aliases for instructions we already support and help when
assembling code which was written for the HLASM assembler.

The HLASM mnemonics are documented here:
https://www.ibm.com/support/knowledgecenter/SSENW6_1.6.0/com.ibm.hlasm.v1r6.asm/asmr1023.pdf

See the 'Branching with extended mnemonic codes' chapter.

objdump will still print the existing mnemonics with the exception of
relative nop branches (i.e. conditional branches with an empty
condition code mask).  Now we have jnop and jgnop which will be used
by objdump when possible.

The same change have been applied to the LLVM assembler:
https://reviews.llvm.org/D92185

opcodes/

* s390-opc.txt: Add extended mnemonics.

gas/

* testsuite/gas/s390/esa-g5.s: Test new extended mnemonics.
* testsuite/gas/s390/esa-g5.d: Likewise.
* testsuite/gas/s390/esa-z900.s: Likewise.
* testsuite/gas/s390/esa-z900.d: Likewise.
* testsuite/gas/s390/zarch-z900.s: Likewise.
* testsuite/gas/s390/zarch-z900.d: Likewise.

ld/

* testsuite/ld-s390/tlsbin_64.dd: The newly added jgnop mnemonic
replaces long relative branches with empty condition code mask.
gas/ChangeLog
gas/testsuite/gas/s390/esa-g5.d
gas/testsuite/gas/s390/esa-g5.s
gas/testsuite/gas/s390/esa-z900.d
gas/testsuite/gas/s390/esa-z900.s
gas/testsuite/gas/s390/zarch-z900.d
gas/testsuite/gas/s390/zarch-z900.s
ld/ChangeLog
ld/testsuite/ld-s390/tlsbin_64.dd
opcodes/ChangeLog
opcodes/s390-opc.txt