diff options
author | Andre Vieira <andre.simoesdiasvieira@arm.com> | 2019-04-15 10:54:42 +0100 |
---|---|---|
committer | Andre Vieira <andre.simoesdiasvieira@arm.com> | 2019-04-15 10:54:42 +0100 |
commit | 031254f2111f945ce6a1b8827e1a58ed7141fefe (patch) | |
tree | fb46a87cfb24602225e6ee42ef76764e305f1b6f /ld | |
parent | 8669f96f0d1fee8eddc4cb56ba68125abfe61f56 (diff) | |
download | gdb-031254f2111f945ce6a1b8827e1a58ed7141fefe.zip gdb-031254f2111f945ce6a1b8827e1a58ed7141fefe.tar.gz gdb-031254f2111f945ce6a1b8827e1a58ed7141fefe.tar.bz2 |
[binutils, ARM, 1/16] Add support for Armv8.1-M Mainline CLI
The patch is straightforward, it does the following:
- support the new Tag_CPU_arch build attribute value, ie.:
+ declare the new value
+ update all the asserts forcing logic to be reviewed for new
architectures
+ create a corresponding bfd_mach_arm_8_1M_MAIN enumerator in bfd and
add mapping from Tag_CPU_arch to it
+ teach readelf about new Tag_CPU_arch value
- declare armv8.1-m.main as a supported architecture value
- define Armv8.1-M Mainline in terms of feature bits available
- tell objdump mapping from bfd_mach_arm_8_1M_MAIN enumerator to feature
bits available
- update architecture-specific logic in gas and bfd guarded by the
asserts mentioned above.
- tests for all the above
ChangeLog entries are as follows:
*** bfd/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* archures.c (bfd_mach_arm_8_1M_MAIN): Define.
* bfd-in2.h: Regenerate.
* cpu-arm.c (arch_info_struct): Add entry for Armv8.1-M Mainline.
* elf32-arm.c (using_thumb_only): Return true for Armv8.1-M Mainline
and update assert.
(using_thumb2): Likewise.
(using_thumb2_bl): Update assert.
(arch_has_arm_nop): Likewise.
(bfd_arm_get_mach_from_attributes): Add case for Armv8.1-M Mainline.
(tag_cpu_arch_combine): Add logic for Armv8.1-M Mainline merging.
*** binutils/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* readelf.c (arm_attr_tag_CPU_arch): Add entry for Armv8.1-M Mainline.
*** gas/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/tc-arm.c (cpu_arch_ver): Add entry for Armv8.1-M Mainline
Tag_CPU_arch build attribute value. Reindent.
(get_aeabi_cpu_arch_from_fset): Update assert.
(aeabi_set_public_attributes): Update assert for Tag_DIV_use logic.
* testsuite/gas/arm/attr-march-armv8_1-m.main.d: New test.
*** include/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* elf/arm.h (TAG_CPU_ARCH_V8_1M_MAIN): new macro.
(MAX_TAG_CPU_ARCH): Set value to above macro.
* opcode/arm.h (ARM_EXT2_V8_1M_MAIN): New macro.
(ARM_AEXT_V8_1M_MAIN): Likewise.
(ARM_AEXT2_V8_1M_MAIN): Likewise.
(ARM_ARCH_V8_1M_MAIN): Likewise.
*** ld/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* testsuite/ld-arm/attr-merge-13.attr: New test.
* testsuite/ld-arm/attr-merge-13a.s: New test.
* testsuite/ld-arm/attr-merge-13b.s: New test.
*** opcodes/ChangeLog ***
2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
* arm-dis.c (select_arm_features): Add logic for Armv8.1-M Mainline.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-13.attr | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-13a.s | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/attr-merge-13b.s | 5 |
4 files changed, 22 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 94e6013..08733d0 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2019-04-15 Thomas Preud'homme <thomas.preudhomme@arm.com> + + * testsuite/ld-arm/attr-merge-13.attr: New test. + * testsuite/ld-arm/attr-merge-13a.s: New test. + * testsuite/ld-arm/attr-merge-13b.s: New test. + 2019-04-13 Alan Modra <amodra@gmail.com> * Makefile.am (GENSCRIPTS): Pass LIB_PATH as a parameter. Add diff --git a/ld/testsuite/ld-arm/attr-merge-13.attr b/ld/testsuite/ld-arm/attr-merge-13.attr new file mode 100644 index 0000000..9fabb5b --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-13.attr @@ -0,0 +1,6 @@ +Attribute Section: aeabi +File Attributes + Tag_CPU_name: "8.1-M.MAIN" + Tag_CPU_arch: v8.1-M.mainline + Tag_CPU_arch_profile: Microcontroller + Tag_THUMB_ISA_use: Yes diff --git a/ld/testsuite/ld-arm/attr-merge-13a.s b/ld/testsuite/ld-arm/attr-merge-13a.s new file mode 100644 index 0000000..5349f7f --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-13a.s @@ -0,0 +1,5 @@ + .arch armv8-m.main + + @ Tag_CPU_arch & Tag_CPU_arch_profile = v8-M.mainline + .eabi_attribute Tag_CPU_arch, 17 + .eabi_attribute Tag_CPU_arch_profile, 'M' diff --git a/ld/testsuite/ld-arm/attr-merge-13b.s b/ld/testsuite/ld-arm/attr-merge-13b.s new file mode 100644 index 0000000..20e0753 --- /dev/null +++ b/ld/testsuite/ld-arm/attr-merge-13b.s @@ -0,0 +1,5 @@ + .arch armv8.1-m.main + + @ Tag_CPU_arch & Tag_CPU_arch_profile = v8.1-M.mainline + .eabi_attribute Tag_CPU_arch, 18 + .eabi_attribute Tag_CPU_arch_profile, 'M' |