This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] ARM attributes and user intent
- From: Andrew Stubbs <ams at codesourcery dot com>
- To: binutils at sourceware dot org
- Date: Wed, 21 Jan 2009 11:07:32 +0000
- Subject: [PATCH] ARM attributes and user intent
Hi,
The ARM ABI requires that the attributes are set according to the intent
of the user, not the state of the binary (the two must be compatible, of
course).
With this patch, the attributes are now set according to the following
rules:
1. If no options or directives are present, then the assembler assumes
the user intends no specific architecture, but assumes the user intends
that both ARM and Thumb are permitted. (This is the assumption made by
the assembler when validating the input.)
2. If no directives are present, but command line options are given,
then the user intentions are specified by the options.
3. If directives are present, then those encode the user intentions,
regardless of the command line options, or code content.
4. The .eabi_attributes set the output values of the attributes, and
override .cpu, .arch, .fpu, and command line settings (i.e. any
auto-magical settings). The .cpu, .arch, .fpu, and command line
settings continue to control the assembler's validation checks.
5. Attributes not set explicitly are inferred (where possible) from the
user intentions determined above.
Note that the compiler passes the user intentions through as .cpu and
.fpu directives.
In the process of this work I also found and fixed a number of bugs:
* The iwmmxt2 was not set correctly.
* The FPU was settings for VFPv3 and VFPv3-D16 were inverted.
* -march=armv5t resulted in v5te
The patch adds a test case for every possible -march and -mfpu to ensure
that the attributes are set correctly, and a number of test cases to
ensure that the precedence rules above are obeyed. I have also updated
the expected results for all affected existing tests.
OK?
Andrew
2009-01-21 Andrew Stubbs <ams@codesourcery.com>
gas/
* config/tc-arm.c (attributes_set_explicitly): New array.
(s_arm_eabi_attribute): Check return value from s_vendor_attribute.
(cpu_arch): Add ARM_ARCH_V5T.
(aeabi_set_attribute_int): New function.
(aeabi_set_attribute_string): New function.
(aeabi_set_public_attributes): Set attributes according to the user's
intentions, rather than the actual state of the binary.
Use aeabi_set_attribute_int and aeabi_set_attribute_string instead of
bfd_elf_add_proc_attr_int and bfd_elf_add_proc_attr_string.
Support WMMXv2. Use attribute names instead of numbers.
* read.c (s_vendor_attribute): Change return type to int.
Return the tag number that was set.
* read.h (s_vendor_attribute): Change return type to int.
gas/testsuite/
* gas/arm/attr-cpu-directive.d: New file.
* gas/arm/attr-cpu-directive.s: New file.
* gas/arm/attr-default.d: New file.
* gas/arm/attr-march-all.d: New file.
* gas/arm/attr-march-armv1.d: New file.
* gas/arm/attr-march-armv2.d: New file.
* gas/arm/attr-march-armv2a.d: New file.
* gas/arm/attr-march-armv2s.d: New file.
* gas/arm/attr-march-armv3.d: New file.
* gas/arm/attr-march-armv3m.d: New file.
* gas/arm/attr-march-armv4.d: New file.
* gas/arm/attr-march-armv4t.d: New file.
* gas/arm/attr-march-armv4txm.d: New file.
* gas/arm/attr-march-armv4xm.d: New file.
* gas/arm/attr-march-armv5.d: New file.
* gas/arm/attr-march-armv5t.d: New file.
* gas/arm/attr-march-armv5te.d: New file.
* gas/arm/attr-march-armv5tej.d: New file.
* gas/arm/attr-march-armv5texp.d: New file.
* gas/arm/attr-march-armv5txm.d: New file.
* gas/arm/attr-march-armv6-m.d: New file.
* gas/arm/attr-march-armv6.d: New file.
* gas/arm/attr-march-armv6j.d: New file.
* gas/arm/attr-march-armv6k.d: New file.
* gas/arm/attr-march-armv6kt2.d: New file.
* gas/arm/attr-march-armv6t2.d: New file.
* gas/arm/attr-march-armv6z.d: New file.
* gas/arm/attr-march-armv6zk.d: New file.
* gas/arm/attr-march-armv6zkt2.d: New file.
* gas/arm/attr-march-armv6zt2.d: New file.
* gas/arm/attr-march-armv7-a.d: New file.
* gas/arm/attr-march-armv7-m.d: New file.
* gas/arm/attr-march-armv7-r.d: New file.
* gas/arm/attr-march-armv7.d: New file.
* gas/arm/attr-march-armv7a.d: New file.
* gas/arm/attr-march-armv7m.d: New file.
* gas/arm/attr-march-armv7r.d: New file.
* gas/arm/attr-march-iwmmxt.d: New file.
* gas/arm/attr-march-iwmmxt2.d: New file.
* gas/arm/attr-march-xscale.d: New file.
* gas/arm/attr-mcpu.d: New file.
* gas/arm/attr-mfpu-arm1020e.d: New file.
* gas/arm/attr-mfpu-arm1020t.d: New file.
* gas/arm/attr-mfpu-arm1136jf-s.d: New file.
* gas/arm/attr-mfpu-arm1136jfs.d: New file.
* gas/arm/attr-mfpu-arm7500fe.d: New file.
* gas/arm/attr-mfpu-fpa.d: New file.
* gas/arm/attr-mfpu-fpa10.d: New file.
* gas/arm/attr-mfpu-fpa11.d: New file.
* gas/arm/attr-mfpu-fpe.d: New file.
* gas/arm/attr-mfpu-fpe2.d: New file.
* gas/arm/attr-mfpu-fpe3.d: New file.
* gas/arm/attr-mfpu-maverick.d: New file.
* gas/arm/attr-mfpu-neon-fp16.d: New file.
* gas/arm/attr-mfpu-neon.d: New file.
* gas/arm/attr-mfpu-softfpa.d: New file.
* gas/arm/attr-mfpu-softvfp+vfp.d: New file.
* gas/arm/attr-mfpu-softvfp.d: New file.
* gas/arm/attr-mfpu-vfp.d: New file.
* gas/arm/attr-mfpu-vfp10-r0.d: New file.
* gas/arm/attr-mfpu-vfp10.d: New file.
* gas/arm/attr-mfpu-vfp3.d: New file.
* gas/arm/attr-mfpu-vfp9.d: New file.
* gas/arm/attr-mfpu-vfpv2.d: New file.
* gas/arm/attr-mfpu-vfpv3-d16.d: New file.
* gas/arm/attr-mfpu-vfpv3.d: New file.
* gas/arm/attr-mfpu-vfpxd.d: New file.
* gas/arm/attr-order.d: Update Tag_ARM_ISA_use and Tag_THUMB_ISA_use.
* gas/arm/attr-override-cpu-directive.d: New file.
* gas/arm/attr-override-cpu-directive.s: New file.
* gas/arm/attr-override-mcpu.d: New file.
* gas/arm/attr-override-mcpu.s: New file.
* gas/arm/blank.s: New file.
* gas/arm/eabi_attr_1.d: Update Tag_ARM_ISA_use and Tag_THUMB_ISA_use.
ld/testsuite/
* ld-arm/attr-merge-3.attr: Update following gas change.
* ld-arm/attr-merge-2.attr: Update Tag_ARM_ISA_use and
Tag_THUMB_ISA_use following gas changes.
* ld-arm/attr-merge-4.attr: Likewise.
* ld-arm/attr-merge-5.attr: Likewise.
* ld-arm/attr-merge-arch-1.attr: Likewise.
* ld-arm/attr-merge-arch-2.attr: Likewise.
* ld-arm/attr-merge-unknown-2.d: Likewise.
* ld-arm/attr-merge-unknown-2r.d: Likewise.
* ld-arm/attr-merge-unknown-3.d: Likewise.
* ld-arm/attr-merge-wchar-00-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-00.d: Likewise.
* ld-arm/attr-merge-wchar-02-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-02.d: Likewise.
* ld-arm/attr-merge-wchar-04-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-04.d: Likewise.
* ld-arm/attr-merge-wchar-20-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-20.d: Likewise.
* ld-arm/attr-merge-wchar-22-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-22.d: Likewise.
* ld-arm/attr-merge-wchar-24-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-40-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-40.d: Likewise.
* ld-arm/attr-merge-wchar-42-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-44-nowarn.d: Likewise.
* ld-arm/attr-merge-wchar-44.d: Likewise.
* ld-arm/attr-merge.attr: Likewise.
---
src/binutils-mainline/gas/config/tc-arm.c | 87 ++++++----
src/binutils-mainline/gas/read.c | 16 +
src/binutils-mainline/gas/read.h | 2
src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.s | 1
src/binutils-mainline/gas/testsuite/gas/arm/attr-default.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-all.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv1.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2a.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2s.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3m.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4t.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4txm.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4xm.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5t.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5te.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5tej.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5texp.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5txm.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6-m.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6j.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6k.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6kt2.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6t2.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6z.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zk.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zkt2.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zt2.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-a.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-m.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-r.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7a.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7m.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7r.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt2.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-march-xscale.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mcpu.d | 14 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa10.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa11.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe2.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe3.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-maverick.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d | 12 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softfpa.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp.d | 9 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp3.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp9.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-order.d | 2
src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.d | 10 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.s | 5
src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.d | 11 +
src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.s | 2
src/binutils-mainline/gas/testsuite/gas/arm/blank.s | 1
src/binutils-mainline/gas/testsuite/gas/arm/eabi_attr_1.d | 1
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-2.attr | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-3.attr | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-4.attr | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-5.attr | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-1.attr | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-2.attr | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2r.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-3.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44.d | 2
src/binutils-mainline/ld/testsuite/ld-arm/attr-merge.attr | 2
103 files changed, 841 insertions(+), 41 deletions(-)
Index: src/binutils-mainline/gas/config/tc-arm.c
===================================================================
--- src/binutils-mainline/gas/config/tc-arm.c.orig
+++ src/binutils-mainline/gas/config/tc-arm.c
@@ -240,6 +240,8 @@ static int meabi_flags = EABI_DEFAULT;
static int meabi_flags = EF_ARM_EABI_UNKNOWN;
# endif
+static int attributes_set_explicitly[NUM_KNOWN_OBJ_ATTRIBUTES];
+
bfd_boolean
arm_is_eabi (void)
{
@@ -3883,7 +3885,10 @@ s_arm_unwind_raw (int ignored ATTRIBUTE_
static void
s_arm_eabi_attribute (int ignored ATTRIBUTE_UNUSED)
{
- s_vendor_attribute (OBJ_ATTR_PROC);
+ int tag = s_vendor_attribute (OBJ_ATTR_PROC);
+
+ if (tag < NUM_KNOWN_OBJ_ATTRIBUTES)
+ attributes_set_explicitly[tag] = 1;
}
#endif /* OBJ_ELF */
@@ -20714,6 +20719,7 @@ static const cpu_arch_ver_table cpu_arch
{1, ARM_ARCH_V4},
{2, ARM_ARCH_V4T},
{3, ARM_ARCH_V5},
+ {3, ARM_ARCH_V5T},
{4, ARM_ARCH_V5TE},
{5, ARM_ARCH_V5TEJ},
{6, ARM_ARCH_V6},
@@ -20727,6 +20733,25 @@ static const cpu_arch_ver_table cpu_arch
{0, ARM_ARCH_NONE}
};
+/* Set an attribute if it has not already been set by the user. */
+static void
+aeabi_set_attribute_int (int tag, int value)
+{
+ if (tag < 1
+ || tag >= NUM_KNOWN_OBJ_ATTRIBUTES
+ || !attributes_set_explicitly[tag])
+ bfd_elf_add_proc_attr_int (stdoutput, tag, value);
+}
+
+static void
+aeabi_set_attribute_string (int tag, const char *value)
+{
+ if (tag < 1
+ || tag >= NUM_KNOWN_OBJ_ATTRIBUTES
+ || !attributes_set_explicitly[tag])
+ bfd_elf_add_proc_attr_string (stdoutput, tag, value);
+}
+
/* Set the public EABI object attributes. */
static void
aeabi_set_public_attributes (void)
@@ -20773,49 +20798,47 @@ aeabi_set_public_attributes (void)
for (i = 0; p[i]; i++)
p[i] = TOUPPER (p[i]);
}
- bfd_elf_add_proc_attr_string (stdoutput, 5, p);
+ aeabi_set_attribute_string (Tag_CPU_name, p);
}
/* Tag_CPU_arch. */
- bfd_elf_add_proc_attr_int (stdoutput, 6, arch);
+ aeabi_set_attribute_int (Tag_CPU_arch, arch);
/* Tag_CPU_arch_profile. */
if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v7a))
- bfd_elf_add_proc_attr_int (stdoutput, 7, 'A');
+ aeabi_set_attribute_int (Tag_CPU_arch_profile, 'A');
else if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v7r))
- bfd_elf_add_proc_attr_int (stdoutput, 7, 'R');
+ aeabi_set_attribute_int (Tag_CPU_arch_profile, 'R');
else if (ARM_CPU_HAS_FEATURE (flags, arm_ext_m))
- bfd_elf_add_proc_attr_int (stdoutput, 7, 'M');
+ aeabi_set_attribute_int (Tag_CPU_arch_profile, 'M');
/* Tag_ARM_ISA_use. */
- if (ARM_CPU_HAS_FEATURE (arm_arch_used, arm_arch_full))
- bfd_elf_add_proc_attr_int (stdoutput, 8, 1);
+ if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v1)
+ || arch == 0)
+ aeabi_set_attribute_int (Tag_ARM_ISA_use, 1);
/* Tag_THUMB_ISA_use. */
- if (ARM_CPU_HAS_FEATURE (thumb_arch_used, arm_arch_full))
- bfd_elf_add_proc_attr_int (stdoutput, 9,
- ARM_CPU_HAS_FEATURE (thumb_arch_used, arm_arch_t2) ? 2 : 1);
+ if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v4t)
+ || arch == 0)
+ aeabi_set_attribute_int (Tag_THUMB_ISA_use,
+ ARM_CPU_HAS_FEATURE (flags, arm_arch_t2) ? 2 : 1);
/* Tag_VFP_arch. */
- if (ARM_CPU_HAS_FEATURE (thumb_arch_used, fpu_vfp_ext_d32)
- || ARM_CPU_HAS_FEATURE (arm_arch_used, fpu_vfp_ext_d32))
- bfd_elf_add_proc_attr_int (stdoutput, 10, 4);
- else if (ARM_CPU_HAS_FEATURE (thumb_arch_used, fpu_vfp_ext_v3)
- || ARM_CPU_HAS_FEATURE (arm_arch_used, fpu_vfp_ext_v3))
- bfd_elf_add_proc_attr_int (stdoutput, 10, 3);
- else if (ARM_CPU_HAS_FEATURE (thumb_arch_used, fpu_vfp_ext_v2)
- || ARM_CPU_HAS_FEATURE (arm_arch_used, fpu_vfp_ext_v2))
- bfd_elf_add_proc_attr_int (stdoutput, 10, 2);
- else if (ARM_CPU_HAS_FEATURE (thumb_arch_used, fpu_vfp_ext_v1)
- || ARM_CPU_HAS_FEATURE (arm_arch_used, fpu_vfp_ext_v1)
- || ARM_CPU_HAS_FEATURE (thumb_arch_used, fpu_vfp_ext_v1xd)
- || ARM_CPU_HAS_FEATURE (arm_arch_used, fpu_vfp_ext_v1xd))
- bfd_elf_add_proc_attr_int (stdoutput, 10, 1);
+ if (ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_d32))
+ aeabi_set_attribute_int (Tag_VFP_arch, 3);
+ else if (ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v3))
+ aeabi_set_attribute_int (Tag_VFP_arch, 4);
+ else if (ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v2))
+ aeabi_set_attribute_int (Tag_VFP_arch, 2);
+ else if (ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v1)
+ || ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v1xd))
+ aeabi_set_attribute_int (Tag_VFP_arch, 1);
/* Tag_WMMX_arch. */
- if (ARM_CPU_HAS_FEATURE (thumb_arch_used, arm_cext_iwmmxt)
- || ARM_CPU_HAS_FEATURE (arm_arch_used, arm_cext_iwmmxt))
- bfd_elf_add_proc_attr_int (stdoutput, 11, 1);
- /* Tag_NEON_arch. */
+ if (ARM_CPU_HAS_FEATURE (flags, arm_cext_iwmmxt2))
+ aeabi_set_attribute_int (Tag_WMMX_arch, 2);
+ else if (ARM_CPU_HAS_FEATURE (flags, arm_cext_iwmmxt))
+ aeabi_set_attribute_int (Tag_WMMX_arch, 1);
+ /* Tag_Advanced_SIMD_arch (formerly Tag_NEON_arch). */
if (ARM_CPU_HAS_FEATURE (flags, fpu_neon_ext_v1))
- bfd_elf_add_proc_attr_int (stdoutput, 12, 1);
- /* Tag_NEON_FP16_arch. */
+ aeabi_set_attribute_int (Tag_Advanced_SIMD_arch, 1);
+ /* Tag_VFP_HP_extension (formerly Tag_NEON_FP16_arch). */
if (ARM_CPU_HAS_FEATURE (flags, fpu_neon_fp16))
- bfd_elf_add_proc_attr_int (stdoutput, 36, 1);
+ aeabi_set_attribute_int (Tag_VFP_HP_extension, 1);
}
/* Add the default contents for the .ARM.attributes section. */
Index: src/binutils-mainline/gas/read.c
===================================================================
--- src/binutils-mainline/gas/read.c.orig
+++ src/binutils-mainline/gas/read.c
@@ -2060,8 +2060,9 @@ skip_past_char (char ** str, char c)
}
#define skip_past_comma(str) skip_past_char (str, ',')
-/* Parse an attribute directive for VENDOR. */
-void
+/* Parse an attribute directive for VENDOR.
+ Returns the attribute number read, or zero on error. */
+int
s_vendor_attribute (int vendor)
{
expressionS exp;
@@ -2104,7 +2105,7 @@ s_vendor_attribute (int vendor)
{
as_bad (_("Attribute name not recognised: %s"), name);
ignore_rest_of_line ();
- return;
+ return 0;
}
}
@@ -2119,7 +2120,7 @@ s_vendor_attribute (int vendor)
{
as_bad (_("expected numeric constant"));
ignore_rest_of_line ();
- return;
+ return 0;
}
i = exp.X_add_number;
}
@@ -2128,7 +2129,7 @@ s_vendor_attribute (int vendor)
{
as_bad (_("expected comma"));
ignore_rest_of_line ();
- return;
+ return 0;
}
if (type & 2)
{
@@ -2156,14 +2157,15 @@ s_vendor_attribute (int vendor)
}
demand_empty_rest_of_line ();
- return;
+ return tag;
bad_string:
as_bad (_("bad string constant"));
ignore_rest_of_line ();
- return;
+ return 0;
bad:
as_bad (_("expected <tag> , <value>"));
ignore_rest_of_line ();
+ return 0;
}
/* Parse a .gnu_attribute directive. */
Index: src/binutils-mainline/gas/read.h
===================================================================
--- src/binutils-mainline/gas/read.h.orig
+++ src/binutils-mainline/gas/read.h
@@ -186,5 +186,5 @@ extern void stringer (int append_zero);
extern void s_xstab (int what);
extern void s_rva (int);
extern void s_incbin (int);
-extern void s_vendor_attribute (int);
+extern int s_vendor_attribute (int);
extern void s_weakref (int);
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.d
@@ -0,0 +1,12 @@
+# name: EABI attributes from directives
+# source: attr-cpu-directive.s
+# as:
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "CORTEX-A8"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.s
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.s
@@ -0,0 +1 @@
+ .cpu cortex-a8
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-default.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-default.d
@@ -0,0 +1,9 @@
+# name: EABI attribute defaults
+# source: blank.s
+# as:
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-all.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-all.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=all
+# source: blank.s
+# as: -march=all
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "all"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv1.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv1.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv1
+# source: blank.s
+# as: -march=armv1
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "1"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv2
+# source: blank.s
+# as: -march=armv2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "2"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2a.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2a.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv2a
+# source: blank.s
+# as: -march=armv2a
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "2A"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2s.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2s.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv2s
+# source: blank.s
+# as: -march=armv2s
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "2S"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv3
+# source: blank.s
+# as: -march=armv3
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "3"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3m.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3m.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv3m
+# source: blank.s
+# as: -march=armv3m
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "3M"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv4
+# source: blank.s
+# as: -march=armv4
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "4"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4t.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4t.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv4t
+# source: blank.s
+# as: -march=armv4t
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "4T"
+ Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4txm.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4txm.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv4txm
+# source: blank.s
+# as: -march=armv4txm
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "4TXM"
+ Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4xm.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4xm.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv4xm
+# source: blank.s
+# as: -march=armv4xm
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "4XM"
+ Tag_CPU_arch: v4
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv5
+# source: blank.s
+# as: -march=armv5
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "5"
+ Tag_CPU_arch: v5T
+ Tag_ARM_ISA_use: Yes
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5t.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5t.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv5t
+# source: blank.s
+# as: -march=armv5t
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "5T"
+ Tag_CPU_arch: v5T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5te.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5te.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv5te
+# source: blank.s
+# as: -march=armv5te
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "5TE"
+ Tag_CPU_arch: v5TE
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5tej.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5tej.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv5tej
+# source: blank.s
+# as: -march=armv5tej
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "5TEJ"
+ Tag_CPU_arch: v5TEJ
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5texp.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5texp.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv5texp
+# source: blank.s
+# as: -march=armv5texp
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "5TEXP"
+ Tag_CPU_arch: v5TE
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5txm.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5txm.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv5txm
+# source: blank.s
+# as: -march=armv5txm
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "5TXM"
+ Tag_CPU_arch: v5T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6-m.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6-m.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6-m
+# source: blank.s
+# as: -march=armv6-m
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6-M"
+ Tag_CPU_arch: v6-M
+ Tag_CPU_arch_profile: Microcontroller
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6
+# source: blank.s
+# as: -march=armv6
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6"
+ Tag_CPU_arch: v6
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6j.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6j.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6j
+# source: blank.s
+# as: -march=armv6j
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6J"
+ Tag_CPU_arch: v6
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6k.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6k.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6k
+# source: blank.s
+# as: -march=armv6k
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6K"
+ Tag_CPU_arch: v6K
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6kt2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6kt2.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6kt2
+# source: blank.s
+# as: -march=armv6kt2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6KT2"
+ Tag_CPU_arch: v6T2
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6t2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6t2.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6t2
+# source: blank.s
+# as: -march=armv6t2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6T2"
+ Tag_CPU_arch: v6T2
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6z.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6z.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6z
+# source: blank.s
+# as: -march=armv6z
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6Z"
+ Tag_CPU_arch: v6KZ
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zk.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zk.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6zk
+# source: blank.s
+# as: -march=armv6zk
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6ZK"
+ Tag_CPU_arch: v6K
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6zkt2
+# source: blank.s
+# as: -march=armv6zkt2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6ZKT2"
+ Tag_CPU_arch: v6T2
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zt2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zt2.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv6zt2
+# source: blank.s
+# as: -march=armv6zt2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "6ZT2"
+ Tag_CPU_arch: v6T2
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-a.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-a.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=armv7-a
+# source: blank.s
+# as: -march=armv7-a
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7-A"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-m.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-m.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv7-m
+# source: blank.s
+# as: -march=armv7-m
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7-M"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Microcontroller
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-r.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-r.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=armv7-r
+# source: blank.s
+# as: -march=armv7-r
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7-R"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Realtime
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7.d
@@ -0,0 +1,10 @@
+# name: attributes for -march=armv7
+# source: blank.s
+# as: -march=armv7
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7"
+ Tag_CPU_arch: v7
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7a.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7a.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=armv7a
+# source: blank.s
+# as: -march=armv7a
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7A"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7m.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7m.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=armv7m
+# source: blank.s
+# as: -march=armv7m
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7M"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Microcontroller
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7r.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7r.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=armv7r
+# source: blank.s
+# as: -march=armv7r
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7R"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Realtime
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=iwmmxt
+# source: blank.s
+# as: -march=iwmmxt
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "iwmmxt"
+ Tag_CPU_arch: v5TE
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_WMMX_arch: WMMXv1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
@@ -0,0 +1,12 @@
+# name: attributes for -march=iwmmxt2
+# source: blank.s
+# as: -march=iwmmxt2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "iwmmxt2"
+ Tag_CPU_arch: v5TE
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_WMMX_arch: WMMXv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-march-xscale.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-march-xscale.d
@@ -0,0 +1,11 @@
+# name: attributes for -march=xscale
+# source: blank.s
+# as: -march=xscale
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "xscale"
+ Tag_CPU_arch: v5TE
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mcpu.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mcpu.d
@@ -0,0 +1,14 @@
+# name: EABI attributes from command line
+# source: blank.s
+# as: -mcpu=cortex-a8
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "CORTEX-A8"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
+ Tag_VFP_arch: VFPv3
+ Tag_Advanced_SIMD_arch: NEONv1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=arm1020e
+# source: blank.s
+# as: -mfpu=arm1020e
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=arm1020t
+# source: blank.s
+# as: -mfpu=arm1020t
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=arm1136jf-s
+# source: blank.s
+# as: -mfpu=arm1136jf-s
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=arm1136jfs
+# source: blank.s
+# as: -mfpu=arm1136jfs
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=arm7500fe
+# source: blank.s
+# as: -mfpu=arm7500fe
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=fpa
+# source: blank.s
+# as: -mfpu=fpa
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=fpa10
+# source: blank.s
+# as: -mfpu=fpa10
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=fpa11
+# source: blank.s
+# as: -mfpu=fpa11
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=fpe
+# source: blank.s
+# as: -mfpu=fpe
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=fpe2
+# source: blank.s
+# as: -mfpu=fpe2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=fpe3
+# source: blank.s
+# as: -mfpu=fpe3
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-maverick.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-maverick.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=maverick
+# source: blank.s
+# as: -mfpu=maverick
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
@@ -0,0 +1,12 @@
+# name: attributes for -mfpu=neon-fp16
+# source: blank.s
+# as: -mfpu=neon-fp16
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv3
+ Tag_Advanced_SIMD_arch: NEONv1
+ Tag_VFP_HP_extension: Allowed
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon.d
@@ -0,0 +1,11 @@
+# name: attributes for -mfpu=neon
+# source: blank.s
+# as: -mfpu=neon
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv3
+ Tag_Advanced_SIMD_arch: NEONv1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=softfpa
+# source: blank.s
+# as: -mfpu=softfpa
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=softvfp+vfp
+# source: blank.s
+# as: -mfpu=softvfp+vfp
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
@@ -0,0 +1,9 @@
+# name: attributes for -mfpu=softvfp
+# source: blank.s
+# as: -mfpu=softvfp
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfp
+# source: blank.s
+# as: -mfpu=vfp
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfp10-r0
+# source: blank.s
+# as: -mfpu=vfp10-r0
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfp10
+# source: blank.s
+# as: -mfpu=vfp10
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfp3
+# source: blank.s
+# as: -mfpu=vfp3
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv3
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfp9
+# source: blank.s
+# as: -mfpu=vfp9
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfpv2
+# source: blank.s
+# as: -mfpu=vfpv2
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv2
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfpv3-d16
+# source: blank.s
+# as: -mfpu=vfpv3-d16
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv3-D16
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfpv3
+# source: blank.s
+# as: -mfpu=vfpv3
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv3
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
@@ -0,0 +1,10 @@
+# name: attributes for -mfpu=vfpxd
+# source: blank.s
+# as: -mfpu=vfpxd
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
+ Tag_VFP_arch: VFPv1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-order.d
===================================================================
--- src/binutils-mainline/gas/testsuite/gas/arm/attr-order.d.orig
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-order.d
@@ -9,6 +9,8 @@ File Attributes
Tag_nodefaults: True
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_unknown_63: "val"
Tag_also_compatible_with: v6-M
Tag_T2EE_use: Allowed
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.d
@@ -0,0 +1,10 @@
+# name: EABI attributes .eabi_attribute overrides .cpu
+# source: attr-override-cpu-directive.s
+# as:
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "custom name"
+ Tag_CPU_arch: v7
+ Tag_THUMB_ISA_use: \?\?\? \(10\)
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.s
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.s
@@ -0,0 +1,5 @@
+ .cpu arm7tdmi
+ .eabi_attribute Tag_CPU_name, "custom name"
+ .eabi_attribute Tag_CPU_arch, 10
+ .eabi_attribute Tag_ARM_ISA_use, 0
+ .eabi_attribute Tag_THUMB_ISA_use, 10
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.d
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.d
@@ -0,0 +1,11 @@
+# name: EABI attributes .cpu overrides -mcpu
+# source: attr-override-mcpu.s
+# as: -mcpu=cortex-a8
+# readelf: -A
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "ARM7TDMI"
+ Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.s
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.s
@@ -0,0 +1,2 @@
+ .cpu arm7tdmi
+ .fpu softfpa
Index: src/binutils-mainline/gas/testsuite/gas/arm/blank.s
===================================================================
--- /dev/null
+++ src/binutils-mainline/gas/testsuite/gas/arm/blank.s
@@ -0,0 +1 @@
+@ this file left intentionally blank
Index: src/binutils-mainline/gas/testsuite/gas/arm/eabi_attr_1.d
===================================================================
--- src/binutils-mainline/gas/testsuite/gas/arm/eabi_attr_1.d.orig
+++ src/binutils-mainline/gas/testsuite/gas/arm/eabi_attr_1.d
@@ -7,6 +7,7 @@ File Attributes
Tag_CPU_name: "ARM1136JF-S"
Tag_CPU_arch: v6
Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_VFP_args: VFP registers
Tag_compatibility: flag = 3, vendor = GNU
Tag_unknown_128: 1234 \(0x4d2\)
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-2.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-2.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-2.attr
@@ -2,6 +2,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-3.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-3.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-3.attr
@@ -2,7 +2,7 @@ Attribute Section: aeabi
File Attributes
Tag_nodefaults: True
Tag_CPU_name: "ARM9E"
- Tag_CPU_arch: v5TE
+ Tag_CPU_arch: v5T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_VFP_arch: VFPv3
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-4.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-4.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-4.attr
@@ -3,4 +3,6 @@ File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
Tag_CPU_arch_profile: Microcontroller
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_also_compatible_with: v6-M
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-5.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-5.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-5.attr
@@ -1,3 +1,5 @@
Attribute Section: aeabi
File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_compatibility: flag = 1, vendor = gnu
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-1.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-1.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-1.attr
@@ -2,3 +2,5 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM v7"
Tag_CPU_arch: v7
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-2.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-2.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-arch-2.attr
@@ -3,3 +3,5 @@ File Attributes
Tag_CPU_raw_name: "arch_v6k"
Tag_CPU_name: "MPCORE"
Tag_CPU_arch: v6K
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2.d
@@ -7,4 +7,6 @@
Attribute Section: aeabi
File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2r.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2r.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2r.d
@@ -7,4 +7,6 @@
Attribute Section: aeabi
File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-3.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-3.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-3.d
@@ -7,5 +7,7 @@
Attribute Section: aeabi
File Attributes
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_unknown_82: 1 \(0x1\)
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 2
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44.d
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44.d.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44.d
@@ -8,6 +8,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Index: src/binutils-mainline/ld/testsuite/ld-arm/attr-merge.attr
===================================================================
--- src/binutils-mainline/ld/testsuite/ld-arm/attr-merge.attr.orig
+++ src/binutils-mainline/ld/testsuite/ld-arm/attr-merge.attr
@@ -2,6 +2,8 @@ Attribute Section: aeabi
File Attributes
Tag_CPU_name: "ARM7TDMI"
Tag_CPU_arch: v4T
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed