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

index c0102b51a493f4789d0a2a56db353c01db595c20..96935a61f2c215873b173a243ca5f1ed9f0567df 100644 (file)
@@ -1,3 +1,12 @@
+2020-12-03  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * 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.
+
 2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
 
        * testsuite/gas/riscv/attribute-10.d: Updated.
index 949ef141c1ab1350da4bf6ebf50bc8f312e71734..67a971bef1513779464c71ee6ba92e171fc9841d 100644 (file)
@@ -78,10 +78,14 @@ Disassembly of section .text:
 .*:    07 29 [  ]*bhr  %r9
 .*:    07 f9 [  ]*br   %r9
 .*:    a7 95 00 00 [    ]*bras %r9,e2 <foo\+0xe2>
-.*:    a7 64 00 00 [    ]*jlh  e6 <foo\+0xe6>
-.*:    a7 66 00 00 [    ]*brct %r6,ea <foo\+0xea>
-.*:    84 69 00 00 [    ]*brxh %r6,%r9,ee <foo\+0xee>
-.*:    85 69 00 00 [    ]*brxle        %r6,%r9,f2 <foo\+0xf2>
+.*:    a7 65 00 00 [    ]*bras %r6,e6 <foo\+0xe6>
+.*:    a7 64 00 00 [    ]*jlh  ea <foo\+0xea>
+.*:    a7 66 00 00 [    ]*brct %r6,ee <foo\+0xee>
+.*:    a7 66 00 00 [    ]*brct %r6,f2 <foo\+0xf2>
+.*:    84 69 00 00 [    ]*brxh %r6,%r9,f6 <foo\+0xf6>
+.*:    84 69 00 00 [    ]*brxh %r6,%r9,fa <foo\+0xfa>
+.*:    85 69 00 00 [    ]*brxle        %r6,%r9,fe <foo\+0xfe>
+.*:    85 69 00 00 [    ]*brxle        %r6,%r9,102 <foo\+0x102>
 .*:    b2 5a 00 69 [    ]*bsa  %r6,%r9
 .*:    b2 58 00 69 [    ]*bsg  %r6,%r9
 .*:    0b 69 [  ]*bsm  %r6,%r9
@@ -180,27 +184,49 @@ Disassembly of section .text:
 .*:    b2 21 00 69 [    ]*ipte %r6,%r9
 .*:    b2 29 00 69 [    ]*iske %r6,%r9
 .*:    b2 23 00 69 [    ]*ivsk %r6,%r9
-.*:    a7 f4 00 00 [    ]*j    278 <foo\+0x278>
-.*:    a7 84 00 00 [    ]*je   27c <foo\+0x27c>
-.*:    a7 24 00 00 [    ]*jh   280 <foo\+0x280>
-.*:    a7 a4 00 00 [    ]*jhe  284 <foo\+0x284>
-.*:    a7 44 00 00 [    ]*jl   288 <foo\+0x288>
-.*:    a7 c4 00 00 [    ]*jle  28c <foo\+0x28c>
-.*:    a7 64 00 00 [    ]*jlh  290 <foo\+0x290>
-.*:    a7 44 00 00 [    ]*jl   294 <foo\+0x294>
-.*:    a7 74 00 00 [    ]*jne  298 <foo\+0x298>
-.*:    a7 d4 00 00 [    ]*jnh  29c <foo\+0x29c>
-.*:    a7 54 00 00 [    ]*jnhe 2a0 <foo\+0x2a0>
-.*:    a7 b4 00 00 [    ]*jnl  2a4 <foo\+0x2a4>
-.*:    a7 34 00 00 [    ]*jnle 2a8 <foo\+0x2a8>
-.*:    a7 94 00 00 [    ]*jnlh 2ac <foo\+0x2ac>
-.*:    a7 b4 00 00 [    ]*jnl  2b0 <foo\+0x2b0>
-.*:    a7 e4 00 00 [    ]*jno  2b4 <foo\+0x2b4>
-.*:    a7 d4 00 00 [    ]*jnh  2b8 <foo\+0x2b8>
-.*:    a7 74 00 00 [    ]*jne  2bc <foo\+0x2bc>
-.*:    a7 14 00 00 [    ]*jo   2c0 <foo\+0x2c0>
-.*:    a7 24 00 00 [    ]*jh   2c4 <foo\+0x2c4>
-.*:    a7 84 00 00 [    ]*je   2c8 <foo\+0x2c8>
+.*:    a7 f4 00 00 [    ]*j    288 <foo\+0x288>
+.*:    a7 84 00 00 [    ]*je   28c <foo\+0x28c>
+.*:    a7 24 00 00 [    ]*jh   290 <foo\+0x290>
+.*:    a7 a4 00 00 [    ]*jhe  294 <foo\+0x294>
+.*:    a7 44 00 00 [    ]*jl   298 <foo\+0x298>
+.*:    a7 c4 00 00 [    ]*jle  29c <foo\+0x29c>
+.*:    a7 64 00 00 [    ]*jlh  2a0 <foo\+0x2a0>
+.*:    a7 44 00 00 [    ]*jl   2a4 <foo\+0x2a4>
+.*:    a7 74 00 00 [    ]*jne  2a8 <foo\+0x2a8>
+.*:    a7 d4 00 00 [    ]*jnh  2ac <foo\+0x2ac>
+.*:    a7 54 00 00 [    ]*jnhe 2b0 <foo\+0x2b0>
+.*:    a7 b4 00 00 [    ]*jnl  2b4 <foo\+0x2b4>
+.*:    a7 34 00 00 [    ]*jnle 2b8 <foo\+0x2b8>
+.*:    a7 94 00 00 [    ]*jnlh 2bc <foo\+0x2bc>
+.*:    a7 b4 00 00 [    ]*jnl  2c0 <foo\+0x2c0>
+.*:    a7 e4 00 00 [    ]*jno  2c4 <foo\+0x2c4>
+.*:    a7 d4 00 00 [    ]*jnh  2c8 <foo\+0x2c8>
+.*:    a7 74 00 00 [    ]*jne  2cc <foo\+0x2cc>
+.*:    a7 14 00 00 [    ]*jo   2d0 <foo\+0x2d0>
+.*:    a7 24 00 00 [    ]*jh   2d4 <foo\+0x2d4>
+.*:    a7 84 00 00 [    ]*je   2d8 <foo\+0x2d8>
+.*:    a7 04 00 00 [    ]*jnop 2dc <foo\+0x2dc>
+.*:    a7 14 00 00 [    ]*jo   2e0 <foo\+0x2e0>
+.*:    a7 24 00 00 [    ]*jh   2e4 <foo\+0x2e4>
+.*:    a7 24 00 00 [    ]*jh   2e8 <foo\+0x2e8>
+.*:    a7 34 00 00 [    ]*jnle 2ec <foo\+0x2ec>
+.*:    a7 44 00 00 [    ]*jl   2f0 <foo\+0x2f0>
+.*:    a7 44 00 00 [    ]*jl   2f4 <foo\+0x2f4>
+.*:    a7 54 00 00 [    ]*jnhe 2f8 <foo\+0x2f8>
+.*:    a7 64 00 00 [    ]*jlh  2fc <foo\+0x2fc>
+.*:    a7 74 00 00 [    ]*jne  300 <foo\+0x300>
+.*:    a7 74 00 00 [    ]*jne  304 <foo\+0x304>
+.*:    a7 84 00 00 [    ]*je   308 <foo\+0x308>
+.*:    a7 84 00 00 [    ]*je   30c <foo\+0x30c>
+.*:    a7 94 00 00 [    ]*jnlh 310 <foo\+0x310>
+.*:    a7 a4 00 00 [    ]*jhe  314 <foo\+0x314>
+.*:    a7 b4 00 00 [    ]*jnl  318 <foo\+0x318>
+.*:    a7 b4 00 00 [    ]*jnl  31c <foo\+0x31c>
+.*:    a7 c4 00 00 [    ]*jle  320 <foo\+0x320>
+.*:    a7 d4 00 00 [    ]*jnh  324 <foo\+0x324>
+.*:    a7 d4 00 00 [    ]*jnh  328 <foo\+0x328>
+.*:    a7 e4 00 00 [    ]*jno  32c <foo\+0x32c>
+.*:    a7 f4 00 00 [    ]*j    330 <foo\+0x330>
 .*:    ed 65 af ff 00 18 [      ]*kdb  %f6,4095\(%r5,%r10\)
 .*:    b3 18 00 69 [    ]*kdbr %f6,%f9
 .*:    ed 65 af ff 00 08 [      ]*keb  %f6,4095\(%r5,%r10\)
@@ -483,4 +509,4 @@ Disassembly of section .text:
 .*:    f8 58 5f ff af ff [      ]*zap  4095\(6,%r5\),4095\(9,%r10\)
 .*:    b2 21 b0 69 [    ]*ipte %r6,%r9,%r11
 .*:    b2 21 bd 69 [    ]*ipte %r6,%r9,%r11,13
-.*:    07 07 [         ]*nopr  %r7
+.*:    07 07 [  ]*nopr %r7
index c417b818add6b248c04c383199f8cba110e8ae03..ee3d6319b1912f718432df281b6caeb32b0dd9ab 100644 (file)
@@ -72,10 +72,14 @@ foo:
        bpr     %r9
        br      %r9
        bras    %r9,.
+       jas     %r6,.
        brc     6,.
        brct    6,.
+       jct     %r6,.
        brxh    %r6,%r9,.
+       jxh     %r6,%r9,.
        brxle   %r6,%r9,.
+       jxle    %r6,%r9,.
        bsa     %r6,%r9
        bsg     %r6,%r9
        bsm     %r6,%r9
@@ -195,6 +199,28 @@ foo:
        jo      .
        jp      .
        jz      .
+       jnop    .
+       bro     .
+       brh     .
+       brp     .
+       brnle   .
+       brl     .
+       brm     .
+       brnhe   .
+       brlh    .
+       brne    .
+       brnz    .
+       bre     .
+       brz     .
+       brnlh   .
+       brhe    .
+       brnl    .
+       brnm    .
+       brle    .
+       brnh    .
+       brnp    .
+       brno    .
+       bru     .
        kdb     %f6,4095(%r5,%r10)
        kdbr    %f6,%f9
        keb     %f6,4095(%r5,%r10)
index f6ff0812d89db13925bd5318e443d8922f04fd78..42f408b624f6ed9909bf12aa0011023dafe171e9 100644 (file)
@@ -6,29 +6,52 @@
 Disassembly of section .text:
 
 .* <foo>:
-.*:    c0 f4 00 00 00 00 [      ]*jg   0 \<foo\>
-.*:    c0 14 00 00 00 00 [      ]*jgo  6 \<foo\+0x6>
-.*:    c0 24 00 00 00 00 [      ]*jgh  c \<foo\+0xc>
-.*:    c0 24 00 00 00 00 [      ]*jgh  12 \<foo\+0x12>
-.*:    c0 34 00 00 00 00 [      ]*jgnle        18 \<foo\+0x18>
-.*:    c0 44 00 00 00 00 [      ]*jgl  1e \<foo\+0x1e>
-.*:    c0 44 00 00 00 00 [      ]*jgl  24 \<foo\+0x24>
-.*:    c0 54 00 00 00 00 [      ]*jgnhe        2a \<foo\+0x2a>
-.*:    c0 64 00 00 00 00 [      ]*jglh 30 \<foo\+0x30>
-.*:    c0 74 00 00 00 00 [      ]*jgne 36 \<foo\+0x36>
-.*:    c0 74 00 00 00 00 [      ]*jgne 3c \<foo\+0x3c>
-.*:    c0 84 00 00 00 00 [      ]*jge  42 \<foo\+0x42>
-.*:    c0 84 00 00 00 00 [      ]*jge  48 \<foo\+0x48>
-.*:    c0 94 00 00 00 00 [      ]*jgnlh        4e \<foo\+0x4e>
-.*:    c0 a4 00 00 00 00 [      ]*jghe 54 \<foo\+0x54>
-.*:    c0 b4 00 00 00 00 [      ]*jgnl 5a \<foo\+0x5a>
-.*:    c0 b4 00 00 00 00 [      ]*jgnl 60 \<foo\+0x60>
-.*:    c0 c4 00 00 00 00 [      ]*jgle 66 \<foo\+0x66>
-.*:    c0 d4 00 00 00 00 [      ]*jgnh 6c \<foo\+0x6c>
-.*:    c0 d4 00 00 00 00 [      ]*jgnh 72 \<foo\+0x72>
-.*:    c0 e4 00 00 00 00 [      ]*jgno 78 \<foo\+0x78>
-.*:    c0 f4 00 00 00 00 [      ]*jg   7e \<foo\+0x7e>
-.*:    c0 65 00 00 00 00 [      ]*brasl        %r6,84 \<foo\+0x84>
+.*:    c0 f4 00 00 00 00 [      ]*jg   0 <foo>
+.*:    c0 04 00 00 00 00 [      ]*jgnop        6 <foo\+0x6>
+.*:    c0 14 00 00 00 00 [      ]*jgo  c <foo\+0xc>
+.*:    c0 24 00 00 00 00 [      ]*jgh  12 <foo\+0x12>
+.*:    c0 24 00 00 00 00 [      ]*jgh  18 <foo\+0x18>
+.*:    c0 34 00 00 00 00 [      ]*jgnle        1e <foo\+0x1e>
+.*:    c0 44 00 00 00 00 [      ]*jgl  24 <foo\+0x24>
+.*:    c0 44 00 00 00 00 [      ]*jgl  2a <foo\+0x2a>
+.*:    c0 54 00 00 00 00 [      ]*jgnhe        30 <foo\+0x30>
+.*:    c0 64 00 00 00 00 [      ]*jglh 36 <foo\+0x36>
+.*:    c0 74 00 00 00 00 [      ]*jgne 3c <foo\+0x3c>
+.*:    c0 74 00 00 00 00 [      ]*jgne 42 <foo\+0x42>
+.*:    c0 84 00 00 00 00 [      ]*jge  48 <foo\+0x48>
+.*:    c0 84 00 00 00 00 [      ]*jge  4e <foo\+0x4e>
+.*:    c0 94 00 00 00 00 [      ]*jgnlh        54 <foo\+0x54>
+.*:    c0 a4 00 00 00 00 [      ]*jghe 5a <foo\+0x5a>
+.*:    c0 b4 00 00 00 00 [      ]*jgnl 60 <foo\+0x60>
+.*:    c0 b4 00 00 00 00 [      ]*jgnl 66 <foo\+0x66>
+.*:    c0 c4 00 00 00 00 [      ]*jgle 6c <foo\+0x6c>
+.*:    c0 d4 00 00 00 00 [      ]*jgnh 72 <foo\+0x72>
+.*:    c0 d4 00 00 00 00 [      ]*jgnh 78 <foo\+0x78>
+.*:    c0 e4 00 00 00 00 [      ]*jgno 7e <foo\+0x7e>
+.*:    c0 f4 00 00 00 00 [      ]*jg   84 <foo\+0x84>
+.*:    c0 14 00 00 00 00 [      ]*jgo  8a <foo\+0x8a>
+.*:    c0 24 00 00 00 00 [      ]*jgh  90 <foo\+0x90>
+.*:    c0 24 00 00 00 00 [      ]*jgh  96 <foo\+0x96>
+.*:    c0 34 00 00 00 00 [      ]*jgnle        9c <foo\+0x9c>
+.*:    c0 44 00 00 00 00 [      ]*jgl  a2 <foo\+0xa2>
+.*:    c0 44 00 00 00 00 [      ]*jgl  a8 <foo\+0xa8>
+.*:    c0 54 00 00 00 00 [      ]*jgnhe        ae <foo\+0xae>
+.*:    c0 64 00 00 00 00 [      ]*jglh b4 <foo\+0xb4>
+.*:    c0 74 00 00 00 00 [      ]*jgne ba <foo\+0xba>
+.*:    c0 74 00 00 00 00 [      ]*jgne c0 <foo\+0xc0>
+.*:    c0 84 00 00 00 00 [      ]*jge  c6 <foo\+0xc6>
+.*:    c0 84 00 00 00 00 [      ]*jge  cc <foo\+0xcc>
+.*:    c0 94 00 00 00 00 [      ]*jgnlh        d2 <foo\+0xd2>
+.*:    c0 a4 00 00 00 00 [      ]*jghe d8 <foo\+0xd8>
+.*:    c0 b4 00 00 00 00 [      ]*jgnl de <foo\+0xde>
+.*:    c0 b4 00 00 00 00 [      ]*jgnl e4 <foo\+0xe4>
+.*:    c0 c4 00 00 00 00 [      ]*jgle ea <foo\+0xea>
+.*:    c0 d4 00 00 00 00 [      ]*jgnh f0 <foo\+0xf0>
+.*:    c0 d4 00 00 00 00 [      ]*jgnh f6 <foo\+0xf6>
+.*:    c0 e4 00 00 00 00 [      ]*jgno fc <foo\+0xfc>
+.*:    c0 f4 00 00 00 00 [      ]*jg   102 <foo\+0x102>
+.*:    c0 65 00 00 00 00 [      ]*brasl        %r6,108 <foo\+0x108>
+.*:    c0 65 00 00 00 00 [      ]*brasl        %r6,10e <foo\+0x10e>
 .*:    01 0b [  ]*tam
 .*:    01 0c [  ]*sam24
 .*:    01 0d [  ]*sam31
@@ -39,7 +62,7 @@ Disassembly of section .text:
 .*:    b9 97 00 69 [    ]*dlr  %r6,%r9
 .*:    b9 98 00 69 [    ]*alcr %r6,%r9
 .*:    b9 99 00 69 [    ]*slbr %r6,%r9
-.*:    c0 60 00 00 00 00 [      ]*larl %r6,ac \<foo\+0xac\>
+.*:    c0 60 00 00 00 00 [      ]*larl %r6,136 <foo\+0x136>
 .*:    e3 65 af ff 00 1e [      ]*lrv  %r6,4095\(%r5,%r10\)
 .*:    e3 65 af ff 00 1f [      ]*lrvh %r6,4095\(%r5,%r10\)
 .*:    e3 65 af ff 00 3e [      ]*strv %r6,4095\(%r5,%r10\)
@@ -49,3 +72,4 @@ Disassembly of section .text:
 .*:    e3 65 af ff 00 98 [      ]*alc  %r6,4095\(%r5,%r10\)
 .*:    e3 65 af ff 00 99 [      ]*slb  %r6,4095\(%r5,%r10\)
 .*:    eb 69 5f ff 00 1d [      ]*rll  %r6,%r9,4095\(%r5\)
+.*:    07 07 [  ]*nopr %r7
index 815732df37c82f3d605d779f25134a08c496e53c..7a006168f9e09a206a5db70557ee63c78486bcf9 100644 (file)
@@ -1,6 +1,7 @@
 .text
 foo:
        brcl    15,.
+       jgnop   .
        jgo     .
        jgh     .
        jgp     .
@@ -22,7 +23,29 @@ foo:
        jgnp    .
        jgno    .
        jg      .
+       brol    .
+       brhl    .
+       brpl    .
+       brnlel  .
+       brll    .
+       brml    .
+       brnhel  .
+       brlhl   .
+       brnel   .
+       brnzl   .
+       brel    .
+       brzl    .
+       brnlhl  .
+       brhel   .
+       brnll   .
+       brnml   .
+       brlel   .
+       brnhl   .
+       brnpl   .
+       brnol   .
+       brul    .
        brasl   %r6,.
+       jasl    %r6,.
        tam
        sam24
        sam31
index 8491a8f4e7a02ca22f5993351bec290d28b63367..8d292dfc11b9622d19ceb8cc1bca8a995c398b68 100644 (file)
@@ -20,8 +20,11 @@ Disassembly of section .text:
 .*:    e3 95 af ff 00 46 [     ]*bctg  %r9,4095\(%r5,%r10\)
 .*:    b9 46 00 96 [   ]*bctgr %r9,%r6
 .*:    a7 97 00 00 [    ]*brctg        %r9,40 \<foo\+0x40\>
-.*:    ec 96 00 00 00 44 [     ]*brxhg %r9,%r6,44 <foo\+0x44>
-.*:    ec 96 00 00 00 45 [     ]*brxlg %r9,%r6,4a <foo\+0x4a>
+.*:    a7 67 00 00 [    ]*brctg        %r6,44 <foo\+0x44>
+.*:    ec 96 00 00 00 44 [     ]*brxhg %r9,%r6,48 <foo\+0x48>
+.*:    ec 69 00 00 00 44 [      ]*brxhg        %r6,%r9,4e <foo\+0x4e>
+.*:    ec 96 00 00 00 45 [     ]*brxlg %r9,%r6,54 <foo\+0x54>
+.*:    ec 69 00 00 00 45 [      ]*brxlg        %r6,%r9,5a <foo\+0x5a>
 .*:    eb 96 5f ff 00 44 [     ]*bxhg  %r9,%r6,4095\(%r5\)
 .*:    eb 96 5f ff 00 45 [     ]*bxleg %r9,%r6,4095\(%r5\)
 .*:    b3 a5 00 96 [   ]*cdgbr %f9,%r6
index a175cca2f4f4e8b60b2a591101eef9dc4433807c..96d27e7b7e27095545453c9ffcadddc64a8f510b 100644 (file)
@@ -14,8 +14,11 @@ foo:
        bctg    %r9,4095(%r5,%r10)
        bctgr   %r9,%r6
        brctg   %r9,.
+       jctg    %r6,.
        brxhg   %r9,%r6,.
+       jxhg    %r6,%r9,.
        brxlg   %r9,%r6,.
+       jxleg   %r6,%r9,.
        bxhg    %r9,%r6,4095(%r5)
        bxleg   %r9,%r6,4095(%r5)
        cdgbr   %f9,%r6
index 2dc5c6e79a3aaf2d6eab1056f9e577879a4d2788..4c5f0090d09403eee6f6e9b2b4486219b30795c1 100644 (file)
@@ -1,3 +1,8 @@
+2020-12-03  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * testsuite/ld-s390/tlsbin_64.dd: The newly added jgnop mnemonic
+       replaces long relative branches with empty condition code masks.
+
 2020-12-03  Maciej W. Rozycki  <macro@linux-mips.org>
 
        * testsuite/ld-vax-elf/vax-elf.exp: Wrap excessively long lines
index b984c5719c9de17e6a7706c8d2debda1ea42d7f2..d2aa851af46a8ced15e0b2ab7eab8224b4c1e286 100644 (file)
@@ -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\)
index 350b37464fc9826ee9db9a30e6371cf9b3f3edce..c19c0aeba49344502c65288c4fddcc3a9df74a19 100644 (file)
@@ -1,3 +1,7 @@
+2020-12-03  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * s390-opc.txt: Add extended mnemonics.
+
 2020-12-01  Nelson Chu  <nelson.chu@sifive.com>
 
        * riscv-opc.c (riscv_ext_version_table): Remove the p, v, n
index 33dbeb3824977f9bc8c073302b9f809f99293b93..d84f9f798a46582ff055d41745187c1857d36328 100644 (file)
@@ -246,10 +246,14 @@ d7 xc SS_L0RDRD "exclusive OR" g5 esa,zarch
 f8 zap SS_LLRDRD "zero and add" g5 esa,zarch
 a70a ahi RI_RI "add halfword immediate" g5 esa,zarch
 84 brxh RSI_RRP "branch relative on index high" g5 esa,zarch
+84 jxh RSI_RRP "branch relative on index high" g5 esa,zarch
 85 brxle RSI_RRP "branch relative on index low or equal" g5 esa,zarch
+85 jxle RSI_RRP "branch relative on index low or equal" g5 esa,zarch
 a705 bras RI_RP "branch relative and save" g5 esa,zarch
+a705 jas RI_RP "branch relative and save" g5 esa,zarch
 a704 brc RI_UP "branch relative on condition" g5 esa,zarch
 a706 brct RI_RP "branch relative on count" g5 esa,zarch
+a706 jct RI_RP "branch relative on count" g5 esa,zarch
 b241 cksm RRE_RR "checksum" g5 esa,zarch
 a70e chi RI_RI "compare halfword immediate" g5 esa,zarch
 a9 clcle RS_RRRD "compare logical long extended" g5 esa,zarch
@@ -268,8 +272,11 @@ a701 tml RI_RU "test under mask low" g5 esa,zarch
 4700 nop RX_0RRD "no operation" g5 esa,zarch optparm
 4700 b*8 RX_0RRD "conditional branch" g5 esa,zarch
 47f0 b RX_0RRD "unconditional branch" g5 esa,zarch
+a704 jnop RI_0P "nop jump" g5 esa,zarch
 a704 j*8 RI_0P "conditional jump" g5 esa,zarch
+a704 br*8 RI_0P "conditional jump" g5 esa,zarch
 a7f4 j RI_0P "unconditional jump" g5 esa,zarch
+a7f4 bru RI_0P "unconditional jump" g5 esa,zarch
 b34a axbr RRE_FEFE "add extended bfp" g5 esa,zarch
 b31a adbr RRE_FF "add long bfp" g5 esa,zarch
 ed000000001a adb RXE_FRRD "add long bfp" g5 esa,zarch
@@ -437,7 +444,9 @@ e3000000001b slgf RXE_RRRD "subtract logical 64<32" z900 zarch
 e3000000000c msg RXE_RRRD "multiply single 64" z900 zarch
 e3000000001c msgf RXE_RRRD "multiply single 64<32" z900 zarch
 ec0000000044 brxhg RIE_RRP "branch relative on index high 64" z900 zarch
+ec0000000044 jxhg RIE_RRP "branch relative on index high 64" z900 zarch
 ec0000000045 brxlg RIE_RRP "branch relative on index low or equal 64" z900 zarch
+ec0000000045 jxleg RIE_RRP "branch relative on index low or equal 64" z900 zarch
 eb0000000044 bxhg RSE_RRRD "branch on index high 64" z900 zarch
 eb0000000045 bxleg RSE_RRRD "branch on index low or equal 64" z900 zarch
 eb000000000c srlg RSE_RRRD "shift right single logical 64" z900 zarch
@@ -462,10 +471,15 @@ eb0000000080 icmh RSE_RURD "insert characters under mask high" z900 zarch
 a702 tmhh RI_RU "test under mask high high" z900 zarch
 a703 tmhl RI_RU "test under mask high low" z900 zarch
 c004 brcl RIL_UP "branch relative on condition long" z900 esa,zarch
+c004 jgnop RIL_0P "nop jump long" z900 esa,zarch
 c004 jg*8 RIL_0P "conditional jump long" z900 esa,zarch
+c004 br*8l RIL_0P "conditional jump long" z900 esa,zarch
 c0f4 jg RIL_0P "unconditional jump long" z900 esa,zarch
+c0f4 brul RIL_0P "unconditional jump long" z900 esa,zarch
 c005 brasl RIL_RP "branch relative and save long" z900 esa,zarch
+c005 jasl RIL_RP "branch relative and save long" z900 esa,zarch
 a707 brctg RI_RP "branch relative on count 64" z900 zarch
+a707 jctg RI_RP "branch relative on count 64" z900 zarch
 a709 lghi RI_RI "load halfword immediate 64" z900 zarch
 a70b aghi RI_RI "add halfword immediate 64" z900 zarch
 a70d mghi RI_RI "multiply halfword immediate 64" z900 zarch