aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bergner <bergner@linux.ibm.com>2020-05-11 09:31:40 +0930
committerAlan Modra <amodra@gmail.com>2020-05-11 21:08:36 +0930
commit3ff0a5ba6458db28b5f0bc28afc0678a247357c0 (patch)
treef1569f23f2ddbad43707a8a1ccf1603aa272e574
parentafef4fe97598e78acfaa8dc7cf06eebff442dedb (diff)
downloadgdb-3ff0a5ba6458db28b5f0bc28afc0678a247357c0.zip
gdb-3ff0a5ba6458db28b5f0bc28afc0678a247357c0.tar.gz
gdb-3ff0a5ba6458db28b5f0bc28afc0678a247357c0.tar.bz2
Power10 byte reverse instructions
opcodes/ * ppc-opc.c (powerpc_opcodes) <brd, brh, brw>: New mnemonics. gas/ * testsuite/gas/ppc/byte_rev.d, * testsuite/gas/ppc/byte_rev.s: New test. * testsuite/gas/ppc/ppc.exp: Run it.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/ppc/byte_rev.d13
-rw-r--r--gas/testsuite/gas/ppc/byte_rev.s5
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/ppc-opc.c6
6 files changed, 35 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 2f1caa7..1e741ed 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2020-05-11 Peter Bergner <bergner@linux.ibm.com>
+ * testsuite/gas/ppc/byte_rev.d,
+ * testsuite/gas/ppc/byte_rev.s: New test.
+ * testsuite/gas/ppc/ppc.exp: Run it.
+
+2020-05-11 Peter Bergner <bergner@linux.ibm.com>
+
* testsuite/gas/ppc/power10.d: Add paste. tests.
* testsuite/gas/ppc/power10.s: Likewise.
diff --git a/gas/testsuite/gas/ppc/byte_rev.d b/gas/testsuite/gas/ppc/byte_rev.d
new file mode 100644
index 0000000..ace537c
--- /dev/null
+++ b/gas/testsuite/gas/ppc/byte_rev.d
@@ -0,0 +1,13 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: byte reverse
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*: (7c 83 01 76|76 01 83 7c) brd r3,r4
+.*: (7c a4 01 b6|b6 01 a4 7c) brh r4,r5
+.*: (7c c5 01 36|36 01 c5 7c) brw r5,r6
diff --git a/gas/testsuite/gas/ppc/byte_rev.s b/gas/testsuite/gas/ppc/byte_rev.s
new file mode 100644
index 0000000..87d4b9c
--- /dev/null
+++ b/gas/testsuite/gas/ppc/byte_rev.s
@@ -0,0 +1,5 @@
+ .text
+_start:
+ brd 3,4
+ brh 4,5
+ brw 5,6
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index 6426996..2b7af4f 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -131,3 +131,4 @@ run_dump_test "prefix-pcrel"
if { [supports_ppc64] } then {
run_dump_test "prefix-reloc"
}
+run_dump_test "byte_rev"
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 4493cb3..f3ad3a1 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,9 @@
2020-05-11 Peter Bergner <bergner@linux.ibm.com>
+ * ppc-opc.c (powerpc_opcodes) <brd, brh, brw>: New mnemonics.
+
+2020-05-11 Peter Bergner <bergner@linux.ibm.com>
+
* ppc-opc.c (insert_l1opt, extract_l1opt): New functions.
(L1OPT): Define.
(powerpc_opcodes) <paste.>: Add L operand for cpu POWER10.
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index 8057f4a..927a892 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -5919,6 +5919,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
+{"brw", X(31,155), XRB_MASK, POWER10, 0, {RA, RS}},
+
{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
@@ -5955,6 +5957,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
+{"brd", X(31,187), XRB_MASK, POWER10, 0, {RA, RS}},
+
{"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
{"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
@@ -5993,6 +5997,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
{"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
+{"brh", X(31,219), XRB_MASK, POWER10, 0, {RA, RS}},
+
{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
{"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},