aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-05-11 09:46:45 +0930
committerAlan Modra <amodra@gmail.com>2020-05-11 21:08:37 +0930
commit66ef5847c3a5ec17259f47f6ab52ebd470c0650c (patch)
treec8e1dd0aac0708950767becc211731597cb4712d /gas
parent4f3e9537c47ce65086cb86587a5fa9be4dc41392 (diff)
downloadfsf-binutils-gdb-66ef5847c3a5ec17259f47f6ab52ebd470c0650c.zip
fsf-binutils-gdb-66ef5847c3a5ec17259f47f6ab52ebd470c0650c.tar.gz
fsf-binutils-gdb-66ef5847c3a5ec17259f47f6ab52ebd470c0650c.tar.bz2
Power10 string operations
opcodes/ * ppc-opc.c (powerpc_opcodes): Add vstribl, vstribr, vstrihl, vstrihr, vclrlb, vclrrb, vstribl., vstribr., vstrihl., vstrihr.. gas/ * testsuite/gas/ppc/stringop.d, * testsuite/gas/ppc/stringop.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/ppc.exp1
-rw-r--r--gas/testsuite/gas/ppc/stringop.d20
-rw-r--r--gas/testsuite/gas/ppc/stringop.s12
4 files changed, 39 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a7fbadc..4855906 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-11 Alan Modra <amodra@gmail.com>
+
+ * testsuite/gas/ppc/stringop.d,
+ * testsuite/gas/ppc/stringop.s: New test.
+ * testsuite/gas/ppc/ppc.exp: Run it.
+
2020-05-11 Peter Bergner <bergner@linux.ibm.com>
* testsuite/gas/ppc/set_bool.d,
diff --git a/gas/testsuite/gas/ppc/ppc.exp b/gas/testsuite/gas/ppc/ppc.exp
index e1c7bde..127829f 100644
--- a/gas/testsuite/gas/ppc/ppc.exp
+++ b/gas/testsuite/gas/ppc/ppc.exp
@@ -142,3 +142,4 @@ run_dump_test "maskmanip"
run_dump_test "genpcv"
run_dump_test "bitmanip"
run_dump_test "set_bool"
+run_dump_test "stringop"
diff --git a/gas/testsuite/gas/ppc/stringop.d b/gas/testsuite/gas/ppc/stringop.d
new file mode 100644
index 0000000..be4c3cb
--- /dev/null
+++ b/gas/testsuite/gas/ppc/stringop.d
@@ -0,0 +1,20 @@
+#as: -mpower10
+#objdump: -dr -Mpower10
+#name: string operations
+
+.*
+
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+.*: (10 01 08 0d|0d 08 01 10) vstribr v0,v1
+.*: (10 41 1c 0d|0d 1c 41 10) vstribr. v2,v3
+.*: (10 80 28 0d|0d 28 80 10) vstribl v4,v5
+.*: (10 c0 3c 0d|0d 3c c0 10) vstribl. v6,v7
+.*: (11 03 48 0d|0d 48 03 11) vstrihr v8,v9
+.*: (11 43 5c 0d|0d 5c 43 11) vstrihr. v10,v11
+.*: (11 82 68 0d|0d 68 82 11) vstrihl v12,v13
+.*: (11 c2 7c 0d|0d 7c c2 11) vstrihl. v14,v15
+.*: (12 11 91 8d|8d 91 11 12) vclrlb v16,v17,r18
+.*: (12 74 a9 cd|cd a9 74 12) vclrrb v19,v20,r21
diff --git a/gas/testsuite/gas/ppc/stringop.s b/gas/testsuite/gas/ppc/stringop.s
new file mode 100644
index 0000000..8f80afc
--- /dev/null
+++ b/gas/testsuite/gas/ppc/stringop.s
@@ -0,0 +1,12 @@
+ .text
+_start:
+ vstribr 0,1
+ vstribr. 2,3
+ vstribl 4,5
+ vstribl. 6,7
+ vstrihr 8,9
+ vstrihr. 10,11
+ vstrihl 12,13
+ vstrihl. 14,15
+ vclrlb 16,17,18
+ vclrrb 19,20,21