Power10 VSX PCV generate operations
Alan Modra
amodra@gmail.com
Mon May 11 11:32:29 GMT 2020
opcodes/
* ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm,
xxgenpcvwm, xxgenpcvdm.
gas/
* testsuite/gas/ppc/genpcv.d,
* testsuite/gas/ppc/genpcv.s: New test.
* testsuite/gas/ppc/ppc.exp: Run it.
diff --git a/gas/testsuite/gas/ppc/genpcv.d b/gas/testsuite/gas/ppc/genpcv.d
new file mode 100644
index 0000000000..a1982e7f7f
--- /dev/null
+++ b/gas/testsuite/gas/ppc/genpcv.d
@@ -0,0 +1,14 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: PCV generate operations
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*: (f2 03 7f 29|29 7f 03 f2) xxgenpcvbm vs48,v15,3
+.*: (f0 02 3f 2b|2b 3f 02 f0) xxgenpcvhm vs32,v7,2
+.*: (f2 01 1f 68|68 1f 01 f2) xxgenpcvwm vs16,v3,1
+.*: (f1 00 0f 6a|6a 0f 00 f1) xxgenpcvdm vs8,v1,0
diff --git a/gas/testsuite/gas/ppc/genpcv.s b/gas/testsuite/gas/ppc/genpcv.s
new file mode 100644
index 0000000000..caada18b60
--- /dev/null
+++ b/gas/testsuite/gas/ppc/genpcv.s
@@ -0,0 +1,6 @@
+ .text
+_start:
+ xxgenpcvbm 48,15,3
+ xxgenpcvhm 32,7,2
+ xxgenpcvwm 16,3,1
+ xxgenpcvdm 8,1,0
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index c250acfd3e..6b4e11a942 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -139,3 +139,4 @@ run_dump_test "int128"
run_dump_test "simd_perm"
run_dump_test "outerprod"
run_dump_test "maskmanip"
+run_dump_test "genpcv"
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index 4e207b488f..804d013e5b 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -8038,11 +8038,15 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
{"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
{"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
+{"xxgenpcvbm", X(60,916), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
+{"xxgenpcvhm", X(60,917), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
{"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
{"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
{"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
{"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
{"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
+{"xxgenpcvwm", X(60,948), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
+{"xxgenpcvdm", X(60,949), XX1_MASK, POWER10, PPCVLE, {XT6, VB, UIMM}},
{"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
{"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
{"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list