This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] ARM attributes and user intent


Nick Clifton wrote:
Approved - please apply - but... please make sure that the new tests are only run for ELF based ARM ports.

Thanks. I've committed the attached patch.


Andrew
2009-01-26  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          |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-cpu-directive.s          |    1 
 src/binutils-mainline/gas/testsuite/gas/arm/attr-default.d                |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-all.d              |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv1.d            |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2.d            |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2a.d           |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv2s.d           |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3.d            |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv3m.d           |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4.d            |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4t.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4txm.d         |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv4xm.d          |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5.d            |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5t.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5te.d          |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5tej.d         |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5texp.d        |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv5txm.d         |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6-m.d          |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6.d            |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6j.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6k.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6kt2.d         |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6t2.d          |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6z.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zk.d          |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zkt2.d        |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv6zt2.d         |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-a.d          |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-m.d          |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7-r.d          |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7.d            |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7a.d           |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7m.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-armv7r.d           |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt.d           |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-iwmmxt2.d          |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-march-xscale.d           |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mcpu.d                   |   16 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d          |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d          |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d       |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d        |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d         |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa.d               |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa10.d             |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpa11.d             |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe.d               |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe2.d              |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-fpe3.d              |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-maverick.d          |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d         |   14 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-neon.d              |   13 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softfpa.d           |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d       |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-softvfp.d           |   11 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp.d               |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d          |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp10.d             |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp3.d              |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfp9.d              |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d             |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d         |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d             |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d             |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-order.d                  |    2 
 src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.d |   12 +
 src/binutils-mainline/gas/testsuite/gas/arm/attr-override-cpu-directive.s |    5 
 src/binutils-mainline/gas/testsuite/gas/arm/attr-override-mcpu.d          |   13 +
 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          |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-2r.d         |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-unknown-3.d          |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-00.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-02.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-04.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-20.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-22.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-40.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d    |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge-wchar-44.d           |    4 
 src/binutils-mainline/ld/testsuite/ld-arm/attr-merge.attr                 |    2 
 103 files changed, 1015 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
@@ -241,6 +241,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)
 {
@@ -3884,7 +3886,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 */
 
@@ -20716,6 +20721,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},
@@ -20729,6 +20735,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)
@@ -20775,49 +20800,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,14 @@
+# name: EABI attributes from directives
+# source: attr-cpu-directive.s
+# as:
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: EABI attribute defaults
+# source: blank.s
+# as:
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=all
+# source: blank.s
+# as: -march=all
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv1
+# source: blank.s
+# as: -march=armv1
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv2
+# source: blank.s
+# as: -march=armv2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv2a
+# source: blank.s
+# as: -march=armv2a
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv2s
+# source: blank.s
+# as: -march=armv2s
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv3
+# source: blank.s
+# as: -march=armv3
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv3m
+# source: blank.s
+# as: -march=armv3m
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv4
+# source: blank.s
+# as: -march=armv4
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv4t
+# source: blank.s
+# as: -march=armv4t
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv4txm
+# source: blank.s
+# as: -march=armv4txm
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv4xm
+# source: blank.s
+# as: -march=armv4xm
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv5
+# source: blank.s
+# as: -march=armv5
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv5t
+# source: blank.s
+# as: -march=armv5t
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv5te
+# source: blank.s
+# as: -march=armv5te
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv5tej
+# source: blank.s
+# as: -march=armv5tej
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv5texp
+# source: blank.s
+# as: -march=armv5texp
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv5txm
+# source: blank.s
+# as: -march=armv5txm
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6-m
+# source: blank.s
+# as: -march=armv6-m
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6
+# source: blank.s
+# as: -march=armv6
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6j
+# source: blank.s
+# as: -march=armv6j
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6k
+# source: blank.s
+# as: -march=armv6k
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6kt2
+# source: blank.s
+# as: -march=armv6kt2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6t2
+# source: blank.s
+# as: -march=armv6t2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6z
+# source: blank.s
+# as: -march=armv6z
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6zk
+# source: blank.s
+# as: -march=armv6zk
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6zkt2
+# source: blank.s
+# as: -march=armv6zkt2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv6zt2
+# source: blank.s
+# as: -march=armv6zt2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=armv7-a
+# source: blank.s
+# as: -march=armv7-a
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv7-m
+# source: blank.s
+# as: -march=armv7-m
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=armv7-r
+# source: blank.s
+# as: -march=armv7-r
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -march=armv7
+# source: blank.s
+# as: -march=armv7
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=armv7a
+# source: blank.s
+# as: -march=armv7a
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=armv7m
+# source: blank.s
+# as: -march=armv7m
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=armv7r
+# source: blank.s
+# as: -march=armv7r
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=iwmmxt
+# source: blank.s
+# as: -march=iwmmxt
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -march=iwmmxt2
+# source: blank.s
+# as: -march=iwmmxt2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -march=xscale
+# source: blank.s
+# as: -march=xscale
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,16 @@
+# name: EABI attributes from command line
+# source: blank.s
+# as: -mcpu=cortex-a8
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=arm1020e
+# source: blank.s
+# as: -mfpu=arm1020e
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=arm1020t
+# source: blank.s
+# as: -mfpu=arm1020t
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=arm1136jf-s
+# source: blank.s
+# as: -mfpu=arm1136jf-s
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=arm1136jfs
+# source: blank.s
+# as: -mfpu=arm1136jfs
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=arm7500fe
+# source: blank.s
+# as: -mfpu=arm7500fe
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=fpa
+# source: blank.s
+# as: -mfpu=fpa
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=fpa10
+# source: blank.s
+# as: -mfpu=fpa10
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=fpa11
+# source: blank.s
+# as: -mfpu=fpa11
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=fpe
+# source: blank.s
+# as: -mfpu=fpe
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=fpe2
+# source: blank.s
+# as: -mfpu=fpe2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=fpe3
+# source: blank.s
+# as: -mfpu=fpe3
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=maverick
+# source: blank.s
+# as: -mfpu=maverick
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,14 @@
+# name: attributes for -mfpu=neon-fp16
+# source: blank.s
+# as: -mfpu=neon-fp16
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: attributes for -mfpu=neon
+# source: blank.s
+# as: -mfpu=neon
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=softfpa
+# source: blank.s
+# as: -mfpu=softfpa
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=softvfp+vfp
+# source: blank.s
+# as: -mfpu=softvfp+vfp
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,11 @@
+# name: attributes for -mfpu=softvfp
+# source: blank.s
+# as: -mfpu=softvfp
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfp
+# source: blank.s
+# as: -mfpu=vfp
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfp10-r0
+# source: blank.s
+# as: -mfpu=vfp10-r0
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfp10
+# source: blank.s
+# as: -mfpu=vfp10
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfp3
+# source: blank.s
+# as: -mfpu=vfp3
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfp9
+# source: blank.s
+# as: -mfpu=vfp9
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfpv2
+# source: blank.s
+# as: -mfpu=vfpv2
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfpv3-d16
+# source: blank.s
+# as: -mfpu=vfpv3-d16
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfpv3
+# source: blank.s
+# as: -mfpu=vfpv3
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,12 @@
+# name: attributes for -mfpu=vfpxd
+# source: blank.s
+# as: -mfpu=vfpxd
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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
@@ -11,6 +11,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,12 @@
+# name: EABI attributes .eabi_attribute overrides .cpu
+# source: attr-override-cpu-directive.s
+# as:
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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,13 @@
+# name: EABI attributes .cpu overrides -mcpu
+# source: attr-override-mcpu.s
+# as: -mcpu=cortex-a8
+# readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+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
@@ -4,7 +4,11 @@
 #ld:
 #warning: Unknown EABI object attribute 82
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -4,7 +4,11 @@
 #ld:
 #warning: Unknown EABI object attribute 82
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -4,8 +4,12 @@
 #ld:
 #warning: Unknown EABI object attribute 82
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r --no-wchar-size-warning
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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
@@ -3,11 +3,15 @@
 #as:
 #ld: -r
 #readelf: -A
+# This test is only valid on ELF based ports.
+# not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
 
 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]