diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-06-21 14:57:53 +0100 |
---|---|---|
committer | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-06-21 15:08:49 +0100 |
commit | 54bab2816dfd025fc53618e46be140573d5bc02e (patch) | |
tree | 82d00fbe2a1089c9ada1152f379b71d9bc786940 /gas/ChangeLog | |
parent | bdab445c82ba93bc9aaad1ae974a3cf5c4aa8a26 (diff) | |
download | gdb-54bab2816dfd025fc53618e46be140573d5bc02e.zip gdb-54bab2816dfd025fc53618e46be140573d5bc02e.tar.gz gdb-54bab2816dfd025fc53618e46be140573d5bc02e.tar.bz2 |
[ARM] Rework selection of feature bits to base build attributes on
=== Context ===
This patch is part of a patch series to add support for ARMv8-R
architecture. Its purpose is to set the feature bits on which to decide
what the build attributes should be according to the mode
(autodetection, user specified architecture or CPU, or
-march/-mcpu=all).
=== Motivation ===
Currently, the flags variable which is used to determine the build
attribute is constructed from the instruction used (arm_arch_used and
thumb_arch_used) as well as the user specified architecture or CPU
(selected_cpu). This means when several .arch are specified the
resulting feature bits can be such that no architecture provide them
all and can thus result in incorrect Tag_CPU_arch. See for instance
what having both .arch armv8-a and .arch armv8-m.base would result in.
This is not caught by the testsuite because of further bugs in the
Tag_CPU_arch build attribute value selection logic (see next patch in
the series).
=== Patch description ===
As one would expect, this patch solves the problem by setting flags
from feature bits used if in autodetection mode [1] and from
selected_cpu otherwise. The logic to set arm_ext_v1, arm_ext_v4t and
arm_ext_os feature bits is also moved to only run in autodetection mode
since otherwise the architecture or CPU would have a consistent set of
feature bits already.
[1] No architecture or CPU was specified by the user
2017-06-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
gas/
* config/tc-arm.c (aeabi_set_public_attributes): Populate flags from
feature bits used or selected_cpu depending on whether a CPU was
selected by the user.
Diffstat (limited to 'gas/ChangeLog')
-rw-r--r-- | gas/ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4c8fc41..82b25ac 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ 2017-06-21 Thomas Preud'homme <thomas.preudhomme@arm.com> + * config/tc-arm.c (aeabi_set_public_attributes): Populate flags from + feature bits used or selected_cpu depending on whether a CPU was + selected by the user. + +2017-06-21 Thomas Preud'homme <thomas.preudhomme@arm.com> + * config/tc-arm.c (aeabi_set_public_attributes): Test *mcpu_ext_opt to decide whether to set Tag_DSP_extension build attribute value. Remove now useless arm_arch variable. |