diff options
author | Andre Vieira <andre.simoesdiasvieira@arm.com> | 2019-12-10 16:10:17 +0000 |
---|---|---|
committer | Andre Vieira <andre.simoesdiasvieira@arm.com> | 2019-12-10 16:10:17 +0000 |
commit | 0e7aaa728dc23f81a7809f3c5c9b90e85b978a8a (patch) | |
tree | 6f4bc053ee1ca1d9294f65842c6ca4be1d2f0a56 /gas | |
parent | 6c71eb7d70c3678f595cd8e66d78c9da5bd3ef4e (diff) | |
download | fsf-binutils-gdb-0e7aaa728dc23f81a7809f3c5c9b90e85b978a8a.zip fsf-binutils-gdb-0e7aaa728dc23f81a7809f3c5c9b90e85b978a8a.tar.gz fsf-binutils-gdb-0e7aaa728dc23f81a7809f3c5c9b90e85b978a8a.tar.bz2 |
[gas][arm] Set context table for '.arch_extension'
This patch fixes .arch_extension behaviour.
Currently, context table for '.arch_extension' is only set while
"-march" processing, but it is not set while .arch processing,
so following code is rejected
.syntax unified
.thumb
.arch armv8.1-m.main
.arch_extension mve.fp
unless -march=armv8.1-m.main is given.
Committing on behalf of Vladimir Murzin
gas/ChangeLog:
2019-12-10 Vladimir Murzin <vladimir.murzin@arm.com>
* config/tc-arm.c (s_arm_arch): Set selected_ctx_ext_table.
* testsuite/gas/arm/mve-arch-ext.s: New.
* testsuite/gas/arm/mve-arch-ext.d: New.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/mve-arch-ext.d | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/mve-arch-ext.s | 6 |
4 files changed, 20 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4d2b738..0932197 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2019-12-10 Vladimir Murzin <vladimir.murzin@arm.com> + + * config/tc-arm.c (s_arm_arch): Set selected_ctx_ext_table. + * testsuite/gas/arm/mve-arch-ext.s: New. + * testsuite/gas/arm/mve-arch-ext.d: New. + 2019-12-09 Jan Beulich <jbeulich@suse.com> * config/tc-i386-intel.c (O_oword_ptr): Move. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 28dc624..c4ffeee 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -32633,6 +32633,7 @@ s_arm_arch (int ignored ATTRIBUTE_UNUSED) if (streq (opt->name, name)) { selected_arch = opt->value; + selected_ctx_ext_table = opt->ext_table; selected_ext = arm_arch_none; selected_cpu = selected_arch; strcpy (selected_cpu_name, opt->name); diff --git a/gas/testsuite/gas/arm/mve-arch-ext.d b/gas/testsuite/gas/arm/mve-arch-ext.d new file mode 100644 index 0000000..0c55b38 --- /dev/null +++ b/gas/testsuite/gas/arm/mve-arch-ext.d @@ -0,0 +1,7 @@ +# name: MVE context sensitive .arch_extension under no -march +# 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-arch-ext.s b/gas/testsuite/gas/arm/mve-arch-ext.s new file mode 100644 index 0000000..bbbb9ee --- /dev/null +++ b/gas/testsuite/gas/arm/mve-arch-ext.s @@ -0,0 +1,6 @@ +.syntax unified +.thumb +.arch armv8.1-m.main +.arch_extension mve + +asrl r2, r3, #5 |