aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorMihail Ionescu <mihail.ionescu@arm.com>2019-10-31 11:22:58 +0000
committerNick Clifton <nickc@redhat.com>2019-10-31 11:22:58 +0000
commite20f9590e78473b3b944d606c28a519094eedea0 (patch)
tree8fea0061965fd8f3fd6f4f547e9a5f66a32e8606 /gas/testsuite
parentc7e49b689b01e54020a945214e75d4d3f8b6a226 (diff)
downloadgdb-e20f9590e78473b3b944d606c28a519094eedea0.zip
gdb-e20f9590e78473b3b944d606c28a519094eedea0.tar.gz
gdb-e20f9590e78473b3b944d606c28a519094eedea0.tar.bz2
Add support for context sensitive '.arch_extension' to the ARM assembler.
If the extension is not found in the context sensitive table, the legacy tables are still checked as a fallback. This is particularly useful for Armv8.1-M as it enables the use of '.arch_extension' with the 'mve' and 'mve.fp' extensions which are not part of the legacy table. * config/tc-arm.c (selected_ctx_ext_table) New static variable. (arm_parse_arch): Set context sensitive extension table based on the chosen base architecture. (s_arm_arch_extension): Change to lookup extensions in the new context sensitive tables. * gas/testsuite/gas/arm/mve-ext.s: New. * gas/testsuite/gas/arm/mve-ext.d: New. * gas/testsuite/gas/arm/mvefp-ext.s: New. * gas/testsuite/gas/arm/mvefp-ext.d: New.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/arm/mve-ext.d8
-rw-r--r--gas/testsuite/gas/arm/mve-ext.s4
-rw-r--r--gas/testsuite/gas/arm/mvefp-ext.d8
-rw-r--r--gas/testsuite/gas/arm/mvefp-ext.s5
4 files changed, 25 insertions, 0 deletions
diff --git a/gas/testsuite/gas/arm/mve-ext.d b/gas/testsuite/gas/arm/mve-ext.d
new file mode 100644
index 0000000..3529231
--- /dev/null
+++ b/gas/testsuite/gas/arm/mve-ext.d
@@ -0,0 +1,8 @@
+# name: MVE context sensitive .arch_extension
+# as: -march=armv8.1-m.main
+# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0[0-9a-f]+ <[^>]+> ea52 136f asrl r2, r3, #5
diff --git a/gas/testsuite/gas/arm/mve-ext.s b/gas/testsuite/gas/arm/mve-ext.s
new file mode 100644
index 0000000..8d4c7c6
--- /dev/null
+++ b/gas/testsuite/gas/arm/mve-ext.s
@@ -0,0 +1,4 @@
+.syntax unified
+.arch_extension mve
+
+asrl r2, r3, #5
diff --git a/gas/testsuite/gas/arm/mvefp-ext.d b/gas/testsuite/gas/arm/mvefp-ext.d
new file mode 100644
index 0000000..530a735
--- /dev/null
+++ b/gas/testsuite/gas/arm/mvefp-ext.d
@@ -0,0 +1,8 @@
+# name: MVE fp context sensitive .arch_extension
+# as: -march=armv8.1-m.main
+# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+[^>]*> eea1 0fc0 vshlc q0, r0, #1
diff --git a/gas/testsuite/gas/arm/mvefp-ext.s b/gas/testsuite/gas/arm/mvefp-ext.s
new file mode 100644
index 0000000..28c5f94
--- /dev/null
+++ b/gas/testsuite/gas/arm/mvefp-ext.s
@@ -0,0 +1,5 @@
+.syntax unified
+.thumb
+.arch_extension mve.fp
+
+vshlc q0, r0, #1