Power10 byte reverse instructions
Alan Modra
amodra@gmail.com
Mon May 11 11:27:35 GMT 2020
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.
diff --git a/gas/testsuite/gas/ppc/byte_rev.d b/gas/testsuite/gas/ppc/byte_rev.d
new file mode 100644
index 0000000000..ace537c458
--- /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 0000000000..87d4b9c97f
--- /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 6426996833..2b7af4fe8c 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/ppc-opc.c b/opcodes/ppc-opc.c
index 8057f4a9d5..927a8922ab 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}},
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list