diff options
author | Jens Remus <jremus@linux.ibm.com> | 2023-11-23 15:46:46 +0100 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.ibm.com> | 2023-11-23 15:51:03 +0100 |
commit | fca086d928a940dc5aa3b5c0586bc5ed37d6b374 (patch) | |
tree | 629d559bd90354cd93c7716c236c2273023548f4 /gas/testsuite | |
parent | eeafc61979c6f8399bb5ce770e46a00823a5cfae (diff) | |
download | gdb-fca086d928a940dc5aa3b5c0586bc5ed37d6b374.zip gdb-fca086d928a940dc5aa3b5c0586bc5ed37d6b374.tar.gz gdb-fca086d928a940dc5aa3b5c0586bc5ed37d6b374.tar.bz2 |
s390: Align optional operand definition to specs
The IBM z/Architecture Principle of Operation [1] specifies the last
operand(s) of some (extended) mnemonics to be optional. Align the
mnemonic definitions in the opcode table according to specification.
This changes the last operand of the following (extended) mnemonics to
be optional:
risbg, risbgz, risbgn, risbgnz, risbhg, risblg, rnsbg, rosbg, rxsbg
Note that efpc and sfpc actually have only one operand, but had
erroneously been defined to have two. For backwards compatibility the
wrong RR register format must be retained. Since the superfluous second
operand is defined as optional the instruction can still be coded as
specified.
[1]: IBM z/Architecture Principles of Operation, SA22-7832-13, IBM z16,
https://publibfp.dhe.ibm.com/epubs/pdf/a227832d.pdf
opcodes/
* s390-opc.txt: Align optional operand definition to
specification.
testsuite/
* zarch-z10.s: Add test cases for risbg, risbgz, rnsbg, rosbg,
and rxsbg.
* zarch-z10.d: Likewise.
* zarch-z196.s: Add test cases for risbhg and risblg.
* zarch-z196.d: Likewise.
* zarch-zEC12.s: Add test cases for risbgn and risbgnz.
* zarch-zEC12.d: Likewise.
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
Reviewed-by: Andreas Krebbel <krebbel@linux.ibm.com>
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/s390/zarch-z10.d | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/s390/zarch-z10.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/s390/zarch-z196.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/s390/zarch-z196.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/s390/zarch-zEC12.d | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/s390/zarch-zEC12.s | 3 |
6 files changed, 27 insertions, 10 deletions
diff --git a/gas/testsuite/gas/s390/zarch-z10.d b/gas/testsuite/gas/s390/zarch-z10.d index 2c7c485..4aca837 100644 --- a/gas/testsuite/gas/s390/zarch-z10.d +++ b/gas/testsuite/gas/s390/zarch-z10.d @@ -360,11 +360,17 @@ Disassembly of section .text: .*: e3 a6 75 b3 01 36 [ ]*pfd 10,5555\(%r6,%r7\) *([\da-f]+): c6 a2 00 00 00 00 [ ]*pfdrl 10,\1 <foo\+0x\1> .*: ec 67 d2 dc e6 54 [ ]*rnsbg %r6,%r7,210,220,230 +.*: ec 67 d2 dc 00 54 [ ]*rnsbg %r6,%r7,210,220 .*: ec 67 d2 dc e6 57 [ ]*rxsbg %r6,%r7,210,220,230 +.*: ec 67 d2 dc 00 57 [ ]*rxsbg %r6,%r7,210,220 .*: ec 67 d2 dc e6 56 [ ]*rosbg %r6,%r7,210,220,230 +.*: ec 67 d2 dc 00 56 [ ]*rosbg %r6,%r7,210,220 .*: ec 67 d2 14 e6 55 [ ]*risbg %r6,%r7,210,20,230 +.*: ec 67 d2 14 00 55 [ ]*risbg %r6,%r7,210,20 .*: ec 67 d2 bc e6 55 [ ]*risbgz %r6,%r7,210,60,230 +.*: ec 67 d2 bc 00 55 [ ]*risbgz %r6,%r7,210,60 .*: ec 67 d2 94 e6 55 [ ]*risbgz %r6,%r7,210,20,230 +.*: ec 67 d2 94 00 55 [ ]*risbgz %r6,%r7,210,20 *([\da-f]+): c4 6f 00 00 00 00 [ ]*strl %r6,\1 <foo\+0x\1> *([\da-f]+): c4 6b 00 00 00 00 [ ]*stgrl %r6,\1 <foo\+0x\1> *([\da-f]+): c4 67 00 00 00 00 [ ]*sthrl %r6,\1 <foo\+0x\1> diff --git a/gas/testsuite/gas/s390/zarch-z10.s b/gas/testsuite/gas/s390/zarch-z10.s index 5cfc533..3ed61a4 100644 --- a/gas/testsuite/gas/s390/zarch-z10.s +++ b/gas/testsuite/gas/s390/zarch-z10.s @@ -354,11 +354,17 @@ foo: pfd 10,5555(%r6,%r7) pfdrl 10,. rnsbg %r6,%r7,210,220,230 + rnsbg %r6,%r7,210,220 rxsbg %r6,%r7,210,220,230 + rxsbg %r6,%r7,210,220 rosbg %r6,%r7,210,220,230 + rosbg %r6,%r7,210,220 risbg %r6,%r7,210,20,230 + risbg %r6,%r7,210,20 risbg %r6,%r7,210,188,230 + risbg %r6,%r7,210,188 risbgz %r6,%r7,210,20,230 + risbgz %r6,%r7,210,20 strl %r6,. stgrl %r6,. sthrl %r6,. diff --git a/gas/testsuite/gas/s390/zarch-z196.d b/gas/testsuite/gas/s390/zarch-z196.d index 0f8bfea..b9db65f 100644 --- a/gas/testsuite/gas/s390/zarch-z196.d +++ b/gas/testsuite/gas/s390/zarch-z196.d @@ -29,7 +29,9 @@ Disassembly of section .text: .*: e3 67 8a 4d fe c2 [ ]*llch %r6,-5555\(%r7,%r8\) .*: e3 67 8a 4d fe c6 [ ]*llhh %r6,-5555\(%r7,%r8\) .*: ec 67 0c 0d 0e 5d [ ]*risbhg %r6,%r7,12,13,14 +.*: ec 67 0c 0d 00 5d [ ]*risbhg %r6,%r7,12,13 .*: ec 67 0c 0d 0e 51 [ ]*risblg %r6,%r7,12,13,14 +.*: ec 67 0c 0d 00 51 [ ]*risblg %r6,%r7,12,13 .*: e3 67 8a 4d fe c3 [ ]*stch %r6,-5555\(%r7,%r8\) .*: e3 67 8a 4d fe c7 [ ]*sthh %r6,-5555\(%r7,%r8\) .*: e3 67 8a 4d fe cb [ ]*stfh %r6,-5555\(%r7,%r8\) diff --git a/gas/testsuite/gas/s390/zarch-z196.s b/gas/testsuite/gas/s390/zarch-z196.s index 31be5a6..213c2a1 100644 --- a/gas/testsuite/gas/s390/zarch-z196.s +++ b/gas/testsuite/gas/s390/zarch-z196.s @@ -23,7 +23,9 @@ foo: llch %r6,-5555(%r7,%r8) llhh %r6,-5555(%r7,%r8) risbhg %r6,%r7,12,13,14 + risbhg %r6,%r7,12,13 risblg %r6,%r7,12,13,14 + risblg %r6,%r7,12,13 stch %r6,-5555(%r7,%r8) sthh %r6,-5555(%r7,%r8) stfh %r6,-5555(%r7,%r8) diff --git a/gas/testsuite/gas/s390/zarch-zEC12.d b/gas/testsuite/gas/s390/zarch-zEC12.d index 96bf59b..57d7bec 100644 --- a/gas/testsuite/gas/s390/zarch-zEC12.d +++ b/gas/testsuite/gas/s390/zarch-zEC12.d @@ -47,8 +47,11 @@ Disassembly of section .text: .*: eb 6c 7a 4d fe 2b [ ]*clgtnh %r6,-5555\(%r7\) .*: eb 6c 7a 4d fe 2b [ ]*clgtnh %r6,-5555\(%r7\) .*: ec 67 0c 0d 0e 59 [ ]*risbgn %r6,%r7,12,13,14 +.*: ec 67 0c 0d 00 59 [ ]*risbgn %r6,%r7,12,13 .*: ec 67 0c bc 0e 59 [ ]*risbgnz %r6,%r7,12,60,14 +.*: ec 67 0c bc 00 59 [ ]*risbgnz %r6,%r7,12,60 .*: ec 67 0c 94 0e 59 [ ]*risbgnz %r6,%r7,12,20,14 +.*: ec 67 0c 94 00 59 [ ]*risbgnz %r6,%r7,12,20 .*: ed 0f 8f a0 6d aa [ ]*cdzt %f6,4000\(16,%r8\),13 .*: ed 21 8f a0 4d ab [ ]*cxzt %f4,4000\(34,%r8\),13 .*: ed 0f 8f a0 6d a8 [ ]*czdt %f6,4000\(16,%r8\),13 @@ -56,16 +59,11 @@ Disassembly of section .text: .*: b2 e8 c0 56 [ ]*ppa %r5,%r6,12 .*: b9 8f 60 59 [ ]*crdte %r5,%r6,%r9 .*: b9 8f 61 59 [ ]*crdte %r5,%r6,%r9,1 -.*: c5 a0 0c 00 00 0c [ ]*bprp 10,136 <bar>,136 <bar> +.*: c5 a0 0c 00 00 0c [ ]*bprp 10,148 <bar>,148 <bar> *([\da-f]+): c5 a0 00 00 00 00 [ ]*bprp 10,\1 <foo\+0x\1>,\1 <foo\+0x\1> -[ ]*125: R_390_PLT12DBL bar\+0x1 -[ ]*127: R_390_PLT24DBL bar\+0x3 +[ ]*137: R_390_PLT12DBL bar\+0x1 +[ ]*139: R_390_PLT24DBL bar\+0x3 *([\da-f]+): c7 a0 00 00 00 00 [ ]*bpp 10,\1 <foo\+0x\1>,0 -[ ]*12e: R_390_PLT16DBL bar\+0x4 +[ ]*140: R_390_PLT16DBL bar\+0x4 *([\da-f]+): c7 a0 00 00 00 00 [ ]*bpp 10,\1 <foo\+0x\1>,0 -[ ]*134: R_390_PC16DBL baz\+0x4 - - -0000000000000136 <bar>: - -.*: 07 07 [ ]*nopr %r7 +[ ]*146: R_390_PC16DBL baz\+0x4 diff --git a/gas/testsuite/gas/s390/zarch-zEC12.s b/gas/testsuite/gas/s390/zarch-zEC12.s index 03b577e..3a30e8d 100644 --- a/gas/testsuite/gas/s390/zarch-zEC12.s +++ b/gas/testsuite/gas/s390/zarch-zEC12.s @@ -44,8 +44,11 @@ foo: clgtnh %r6,-5555(%r7) risbgn %r6,%r7,12,13,14 + risbgn %r6,%r7,12,13 risbgn %r6,%r7,12,188,14 + risbgn %r6,%r7,12,188 risbgnz %r6,%r7,12,20,14 + risbgnz %r6,%r7,12,20 cdzt %f6,4000(16,%r8),13 cxzt %f4,4000(34,%r8),13 |