aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-05-11 09:43:15 +0930
committerAlan Modra <amodra@gmail.com>2020-05-11 21:08:37 +0930
commitd7e97a765ef0b9da6cdddd907ebe9f56a71716ba (patch)
tree909b607dc6bb8174e688613cbec796e4aeca924f
parentfdefed7c26be5016944e59ccb39d4d254bd817f3 (diff)
downloadgdb-d7e97a765ef0b9da6cdddd907ebe9f56a71716ba.zip
gdb-d7e97a765ef0b9da6cdddd907ebe9f56a71716ba.tar.gz
gdb-d7e97a765ef0b9da6cdddd907ebe9f56a71716ba.tar.bz2
Power10 VSX PCV generate operations
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.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/ppc/genpcv.d14
-rw-r--r--gas/testsuite/gas/ppc/genpcv.s6
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/ppc-opc.c4
6 files changed, 36 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c0a072a..04eede4 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2020-05-11 Alan Modra <amodra@gmail.com>
+ * testsuite/gas/ppc/genpcv.d,
+ * testsuite/gas/ppc/genpcv.s: New test.
+ * testsuite/gas/ppc/ppc.exp: Run it.
+
+2020-05-11 Alan Modra <amodra@gmail.com>
+
* testsuite/gas/ppc/maskmanip.d,
* testsuite/gas/ppc/maskmanip.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 0000000..a1982e7
--- /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 0000000..caada18
--- /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 c250acf..6b4e11a 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/ChangeLog b/opcodes/ChangeLog
index 4336066..9db4c82 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
2020-05-11 Alan Modra <amodra@gmail.com>
+ * ppc-opc.c (powerpc_opcodes): Add xxgenpcvbm, xxgenpcvhm,
+ xxgenpcvwm, xxgenpcvdm.
+
+2020-05-11 Alan Modra <amodra@gmail.com>
+
* ppc-opc.c (MP, VXVAM_MASK): Define.
(VXVAPS_MASK): Use VXVA_MASK.
(powerpc_opcodes): Add mtvsrbmi, vexpandbm, vexpandhm, vexpandwm,
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index 4e207b4..804d013 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}},