aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-05-11 09:44:25 +0930
committerAlan Modra <amodra@gmail.com>2020-05-11 21:08:37 +0930
commitec40e91c77ecf4ca853577aa7d68bdaf5aeedfd5 (patch)
tree409ce291d9c53459928d58cebfaceb0f926b3132 /gas
parentd7e97a765ef0b9da6cdddd907ebe9f56a71716ba (diff)
downloadgdb-ec40e91c77ecf4ca853577aa7d68bdaf5aeedfd5.zip
gdb-ec40e91c77ecf4ca853577aa7d68bdaf5aeedfd5.tar.gz
gdb-ec40e91c77ecf4ca853577aa7d68bdaf5aeedfd5.tar.bz2
Power10 bit manipulation operations
opcodes/ * ppc-opc.c (UIM8, P_U8XX4_MASK): Define. (powerpc_opcodes): Add vgnb, vcfuged, vpextd, vpdepd, vclzdm, vctzdm, cntlzdm, pdepd, pextd, cfuged, cnttzdm. (prefix_opcodes): Add xxeval. gas/ * testsuite/gas/ppc/bitmanip.d, * testsuite/gas/ppc/bitmanip.s: New test. * testsuite/gas/ppc/ppc.exp: Run it.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/gas/ppc/bitmanip.d23
-rw-r--r--gas/testsuite/gas/ppc/bitmanip.s14
-rw-r--r--gas/testsuite/gas/ppc/ppc.exp1
4 files changed, 44 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 04eede4..11a20f5 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2020-05-11 Alan Modra <amodra@gmail.com>
+ * testsuite/gas/ppc/bitmanip.d,
+ * testsuite/gas/ppc/bitmanip.s: New test.
+ * testsuite/gas/ppc/ppc.exp: Run it.
+
+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.
diff --git a/gas/testsuite/gas/ppc/bitmanip.d b/gas/testsuite/gas/ppc/bitmanip.d
new file mode 100644
index 0000000..27f4a0c
--- /dev/null
+++ b/gas/testsuite/gas/ppc/bitmanip.d
@@ -0,0 +1,23 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: bit manipulation
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*: (7f df e9 b8|b8 e9 df 7f) cfuged r31,r30,r29
+.*: (7f 7c d0 76|76 d0 7c 7f) cntlzdm r28,r27,r26
+.*: (7f 19 bc 76|76 bc 19 7f) cnttzdm r25,r24,r23
+.*: (7e b6 a1 38|38 a1 b6 7e) pdepd r22,r21,r20
+.*: (7e 53 89 78|78 89 53 7e) pextd r19,r18,r17
+.*: (12 0f 77 84|84 77 0f 12) vclzdm v16,v15,v14
+.*: (11 ac 5f c4|c4 5f ac 11) vctzdm v13,v12,v11
+.*: (11 49 45 cd|cd 45 49 11) vpdepd v10,v9,v8
+.*: (10 e6 2d 8d|8d 2d e6 10) vpextd v7,v6,v5
+.*: (10 83 15 4d|4d 15 83 10) vcfuged v4,v3,v2
+.*: (10 27 04 cc|cc 04 27 10) vgnb r1,v0,7
+.*: (05 00 00 3f|3f 00 00 05) xxeval vs63,vs31,vs62,vs30,63
+.*: (8b ff f7 93|93 f7 ff 8b)
diff --git a/gas/testsuite/gas/ppc/bitmanip.s b/gas/testsuite/gas/ppc/bitmanip.s
new file mode 100644
index 0000000..d4d5774
--- /dev/null
+++ b/gas/testsuite/gas/ppc/bitmanip.s
@@ -0,0 +1,14 @@
+ .text
+_start:
+ cfuged 31,30,29
+ cntlzdm 28,27,26
+ cnttzdm 25,24,23
+ pdepd 22,21,20
+ pextd 19,18,17
+ vclzdm 16,15,14
+ vctzdm 13,12,11
+ vpdepd 10,9,8
+ vpextd 7,6,5
+ vcfuged 4,3,2
+ vgnb 1,0,7
+ xxeval 63,31,62,30,0x3f
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index 6b4e11a..0e53a4c 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -140,3 +140,4 @@ run_dump_test "simd_perm"
run_dump_test "outerprod"
run_dump_test "maskmanip"
run_dump_test "genpcv"
+run_dump_test "bitmanip"