diff options
author | Andreas Krebbel <krebbel@linux.ibm.com> | 2020-12-03 16:31:15 +0100 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.ibm.com> | 2020-12-03 16:51:12 +0100 |
commit | b10b530a4566888492ac693773e1e35f66c4b7c4 (patch) | |
tree | d94e892ccb7730ce0811f25db182b02a69f20c21 /ld/testsuite | |
parent | 9a5c1ed81d71d623b471e0be7c96680c43d86652 (diff) | |
download | gdb-b10b530a4566888492ac693773e1e35f66c4b7c4.zip gdb-b10b530a4566888492ac693773e1e35f66c4b7c4.tar.gz gdb-b10b530a4566888492ac693773e1e35f66c4b7c4.tar.bz2 |
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.
Diffstat (limited to 'ld/testsuite')
-rw-r--r-- | ld/testsuite/ld-s390/tlsbin_64.dd | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/ld/testsuite/ld-s390/tlsbin_64.dd b/ld/testsuite/ld-s390/tlsbin_64.dd index b984c57..d2aa851 100644 --- a/ld/testsuite/ld-s390/tlsbin_64.dd +++ b/ld/testsuite/ld-s390/tlsbin_64.dd @@ -87,26 +87,26 @@ Disassembly of section .text: +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\) # GD -> LE with global variable defined in executable +[0-9a-f]+: e3 20 d0 10 00 04 lg %r2,16\(%r13\) - +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xca> + +[0-9a-f]+: c0 04 00 00 00 00 jgnop [0-9a-f]+ <fn2\+0xca> +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\) # GD -> LE with local variable defined in executable +[0-9a-f]+: e3 20 d0 18 00 04 lg %r2,24\(%r13\) - +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xda> + +[0-9a-f]+: c0 04 00 00 00 00 jgnop [0-9a-f]+ <fn2\+0xda> +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\) # GD -> LE with hidden variable defined in executable +[0-9a-f]+: e3 20 d0 20 00 04 lg %r2,32\(%r13\) - +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xea> + +[0-9a-f]+: c0 04 00 00 00 00 jgnop [0-9a-f]+ <fn2\+0xea> +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\) # LD -> LE +[0-9a-f]+: e3 20 d0 28 00 04 lg %r2,40\(%r13\) - +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xfa> + +[0-9a-f]+: c0 04 00 00 00 00 jgnop [0-9a-f]+ <fn2\+0xfa> +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\) +[0-9a-f]+: e3 40 d0 30 00 04 lg %r4,48\(%r13\) +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\) +[0-9a-f]+: e3 40 d0 38 00 04 lg %r4,56\(%r13\) +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\) +[0-9a-f]+: e3 20 d0 40 00 04 lg %r2,64\(%r13\) - +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0x11e> + +[0-9a-f]+: c0 04 00 00 00 00 jgnop [0-9a-f]+ <fn2\+0x11e> +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\) +[0-9a-f]+: e3 40 d0 48 00 04 lg %r4,72\(%r13\) +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\) |