]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* gas/config/tc-arm.c (aeabi_set_public_attributes): Correct
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Fri, 16 Mar 2012 14:02:33 +0000 (14:02 +0000)
committerMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Fri, 16 Mar 2012 14:02:33 +0000 (14:02 +0000)
handling of Tag_DIV_use.
* gas/testsuite/gas/testsuite/gas/arm/any-idiv.d: New testcase.
* gas/testsuite/gas/testsuite/gas/arm/any-idiv.s: Likewise.
* gas/testsuite/gas/arm/attr-any-armv4t.d: Update expected output.
* gas/testsuite/gas/arm/attr-any-thumbv6.d: Likewise.
* gas/testsuite/gas/arm/attr-cpu-directive.d: Likewise.
* gas/testsuite/gas/arm/attr-default.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv1.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv2.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv2a.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv2s.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv3.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv3m.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv4.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv4t.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv4txm.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv4xm.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv5.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv5t.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv5te.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv5tej.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv5texp.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv5txm.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6-m+os.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6-m.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6j.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6k+sec.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6k.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6kt2.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6s-m.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6t2.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6z.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6zk.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6zkt2.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv6zt2.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv7-a+mp.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv7-a+sec.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv7-a.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv7.d: Likewise.
* gas/testsuite/gas/arm/attr-march-armv7a.d: Likewise.
* gas/testsuite/gas/arm/attr-march-iwmmxt.d: Likewise.
* gas/testsuite/gas/arm/attr-march-iwmmxt2.d: Likewise.
* gas/testsuite/gas/arm/attr-march-xscale.d: Likewise.
* gas/testsuite/gas/arm/attr-mcpu.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-arm1020e.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-arm1020t.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-fpa.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-fpa10.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-fpa11.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-fpe.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-fpe2.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-fpe3.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-maverick.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-neon.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-softfpa.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-softvfp.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfp.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfp10.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfp3.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfp9.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfpv2.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfpv3.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfpv4.d: Likewise.
* gas/testsuite/gas/arm/attr-mfpu-vfpxd.d: Likewise.
* gas/testsuite/gas/arm/attr-order.d: Likewise.
* gas/testsuite/gas/arm/attr-override-cpu-directive.d: Likewise.
* gas/testsuite/gas/arm/attr-override-mcpu.d: Likewise.
* gas/testsuite/gas/arm/eabi_attr_1.d: Likewise.
* gas/testsuite/gas/arm/mov-highregs-any.d: Likewise.
* gas/testsuite/gas/arm/mov-lowregs-any.d: Likewise.
* gas/testsuite/gas/arm/pr12198-1.d: Likewise.
* gas/testsuite/gas/arm/pr12198-2.d: Likewise.
* ld/testsuite/ld-arm/arm-elf.exp: Add new testcases.
* ld/testsuite/ld-arm/attr-merge-2.attr: Update ouput.
* ld/testsuite/ld-arm/attr-merge-2a.s: Remove Tag_DIV_use test.
* ld/testsuite/ld-arm/attr-merge-2b.s: Likewise.
* ld/testsuite/ld-arm/attr-merge-3.attr: Updated expected output.
* ld/testsuite/ld-arm/attr-merge-4.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-5.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-6.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-7.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-arch-1.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-arch-2.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-unknown-2.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-unknown-2r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-unknown-3.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-1.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-1r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-2.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-2r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-3.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-3r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-4.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-4r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-5.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-5r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-6.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-vfp-6r.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-00.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-02.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-04.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-20.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-22.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-40.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-wchar-44.d: Likewise.
* ld/testsuite/ld-arm/attr-merge.attr: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-0.s: New testcase.
* ld/testsuite/ld-arm/attr-merge-div-00.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-01-m3.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-01.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-02.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-1.s: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-10-m3.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-10.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-11.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-12.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-120.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-2.s: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-20.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-21.d: Likewise.
* ld/testsuite/ld-arm/attr-merge-div-22.d: Likewise.

142 files changed:
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/any-idiv.d [new file with mode: 0644]
gas/testsuite/gas/arm/any-idiv.s [new file with mode: 0644]
gas/testsuite/gas/arm/attr-any-armv4t.d
gas/testsuite/gas/arm/attr-any-thumbv6.d
gas/testsuite/gas/arm/attr-cpu-directive.d
gas/testsuite/gas/arm/attr-default.d
gas/testsuite/gas/arm/attr-march-armv1.d
gas/testsuite/gas/arm/attr-march-armv2.d
gas/testsuite/gas/arm/attr-march-armv2a.d
gas/testsuite/gas/arm/attr-march-armv2s.d
gas/testsuite/gas/arm/attr-march-armv3.d
gas/testsuite/gas/arm/attr-march-armv3m.d
gas/testsuite/gas/arm/attr-march-armv4.d
gas/testsuite/gas/arm/attr-march-armv4t.d
gas/testsuite/gas/arm/attr-march-armv4txm.d
gas/testsuite/gas/arm/attr-march-armv4xm.d
gas/testsuite/gas/arm/attr-march-armv5.d
gas/testsuite/gas/arm/attr-march-armv5t.d
gas/testsuite/gas/arm/attr-march-armv5te.d
gas/testsuite/gas/arm/attr-march-armv5tej.d
gas/testsuite/gas/arm/attr-march-armv5texp.d
gas/testsuite/gas/arm/attr-march-armv5txm.d
gas/testsuite/gas/arm/attr-march-armv6-m+os.d
gas/testsuite/gas/arm/attr-march-armv6-m.d
gas/testsuite/gas/arm/attr-march-armv6.d
gas/testsuite/gas/arm/attr-march-armv6j.d
gas/testsuite/gas/arm/attr-march-armv6k+sec.d
gas/testsuite/gas/arm/attr-march-armv6k.d
gas/testsuite/gas/arm/attr-march-armv6kt2.d
gas/testsuite/gas/arm/attr-march-armv6s-m.d
gas/testsuite/gas/arm/attr-march-armv6t2.d
gas/testsuite/gas/arm/attr-march-armv6z.d
gas/testsuite/gas/arm/attr-march-armv6zk.d
gas/testsuite/gas/arm/attr-march-armv6zkt2.d
gas/testsuite/gas/arm/attr-march-armv6zt2.d
gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
gas/testsuite/gas/arm/attr-march-armv7-a+sec.d
gas/testsuite/gas/arm/attr-march-armv7-a.d
gas/testsuite/gas/arm/attr-march-armv7.d
gas/testsuite/gas/arm/attr-march-armv7a.d
gas/testsuite/gas/arm/attr-march-iwmmxt.d
gas/testsuite/gas/arm/attr-march-iwmmxt2.d
gas/testsuite/gas/arm/attr-march-xscale.d
gas/testsuite/gas/arm/attr-mcpu.d
gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
gas/testsuite/gas/arm/attr-mfpu-fpa.d
gas/testsuite/gas/arm/attr-mfpu-fpa10.d
gas/testsuite/gas/arm/attr-mfpu-fpa11.d
gas/testsuite/gas/arm/attr-mfpu-fpe.d
gas/testsuite/gas/arm/attr-mfpu-fpe2.d
gas/testsuite/gas/arm/attr-mfpu-fpe3.d
gas/testsuite/gas/arm/attr-mfpu-maverick.d
gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
gas/testsuite/gas/arm/attr-mfpu-neon.d
gas/testsuite/gas/arm/attr-mfpu-softfpa.d
gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
gas/testsuite/gas/arm/attr-mfpu-softvfp.d
gas/testsuite/gas/arm/attr-mfpu-vfp.d
gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
gas/testsuite/gas/arm/attr-mfpu-vfp10.d
gas/testsuite/gas/arm/attr-mfpu-vfp3.d
gas/testsuite/gas/arm/attr-mfpu-vfp9.d
gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
gas/testsuite/gas/arm/attr-order.d
gas/testsuite/gas/arm/attr-override-cpu-directive.d
gas/testsuite/gas/arm/attr-override-mcpu.d
gas/testsuite/gas/arm/eabi_attr_1.d
gas/testsuite/gas/arm/mov-highregs-any.d
gas/testsuite/gas/arm/mov-lowregs-any.d
gas/testsuite/gas/arm/pr12198-1.d
gas/testsuite/gas/arm/pr12198-2.d
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/attr-merge-2.attr
ld/testsuite/ld-arm/attr-merge-2a.s
ld/testsuite/ld-arm/attr-merge-2b.s
ld/testsuite/ld-arm/attr-merge-3.attr
ld/testsuite/ld-arm/attr-merge-4.attr
ld/testsuite/ld-arm/attr-merge-5.attr
ld/testsuite/ld-arm/attr-merge-6.attr
ld/testsuite/ld-arm/attr-merge-7.attr
ld/testsuite/ld-arm/attr-merge-arch-1.attr
ld/testsuite/ld-arm/attr-merge-arch-2.attr
ld/testsuite/ld-arm/attr-merge-div-0.s [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-00.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-01-m3.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-01.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-02.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-1.s [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-10-m3.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-10.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-11.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-12.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-120.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-2.s [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-20.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-21.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-div-22.d [new file with mode: 0644]
ld/testsuite/ld-arm/attr-merge-unknown-2.d
ld/testsuite/ld-arm/attr-merge-unknown-2r.d
ld/testsuite/ld-arm/attr-merge-unknown-3.d
ld/testsuite/ld-arm/attr-merge-vfp-1.d
ld/testsuite/ld-arm/attr-merge-vfp-1r.d
ld/testsuite/ld-arm/attr-merge-vfp-2.d
ld/testsuite/ld-arm/attr-merge-vfp-2r.d
ld/testsuite/ld-arm/attr-merge-vfp-3.d
ld/testsuite/ld-arm/attr-merge-vfp-3r.d
ld/testsuite/ld-arm/attr-merge-vfp-4.d
ld/testsuite/ld-arm/attr-merge-vfp-4r.d
ld/testsuite/ld-arm/attr-merge-vfp-5.d
ld/testsuite/ld-arm/attr-merge-vfp-5r.d
ld/testsuite/ld-arm/attr-merge-vfp-6.d
ld/testsuite/ld-arm/attr-merge-vfp-6r.d
ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-00.d
ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-02.d
ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-04.d
ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-20.d
ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-22.d
ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-40.d
ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
ld/testsuite/ld-arm/attr-merge-wchar-44.d
ld/testsuite/ld-arm/attr-merge.attr

index cbd6237281fd9f4eeb7503639b45484738d433d0..12382554f8acf1e7686ed3076b2742e88132136b 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/tc-arm.c (aeabi_set_public_attributes): Correct
+       handling of Tag_DIV_use.
+
 2012-03-15  Thomas Schwinge  <thomas@codesourcery.com>
 
        * doc/as.texinfo (Bundle directives): Fix typo.
index b2e0d86d6eb49a32eba6cb8183bf5feba47577bb..8b0f6da5edeba79a67ad1d289c5e20ed5af0001b 100644 (file)
@@ -23698,6 +23698,7 @@ static void
 aeabi_set_public_attributes (void)
 {
   int arch;
+  char profile;
   int virt_sec = 0;
   arm_feature_set flags;
   arm_feature_set tmp;
@@ -23775,11 +23776,16 @@ aeabi_set_public_attributes (void)
 
   /* Tag_CPU_arch_profile.  */
   if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v7a))
-    aeabi_set_attribute_int (Tag_CPU_arch_profile, 'A');
+    profile = 'A';
   else if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v7r))
-    aeabi_set_attribute_int (Tag_CPU_arch_profile, 'R');
+    profile = 'R';
   else if (ARM_CPU_HAS_FEATURE (flags, arm_ext_m))
-    aeabi_set_attribute_int (Tag_CPU_arch_profile, 'M');
+    profile = 'M';
+  else
+    profile = '\0';
+
+  if (profile != '\0')
+    aeabi_set_attribute_int (Tag_CPU_arch_profile, profile);
 
   /* Tag_ARM_ISA_use.  */
   if (ARM_CPU_HAS_FEATURE (flags, arm_ext_v1)
@@ -23828,13 +23834,19 @@ aeabi_set_public_attributes (void)
   if (ARM_CPU_HAS_FEATURE (flags, fpu_vfp_fp16))
     aeabi_set_attribute_int (Tag_VFP_HP_extension, 1);
 
-  /* Tag_DIV_use.  */
-  if (ARM_CPU_HAS_FEATURE (flags, arm_ext_adiv))
+  /* Tag_DIV_use.
+
+     We set Tag_DIV_use to two when integer divide instructions have been used
+     in ARM state, or when Thumb integer divide instructions have been used,
+     but we have no architecture profile set, nor have we any ARM instructions.
+
+     For new architectures we will have to check these tests.  */
+  gas_assert (arch <= TAG_CPU_ARCH_V7E_M);
+  if (ARM_CPU_HAS_FEATURE (flags, arm_ext_adiv)
+      || (profile == '\0'
+         && ARM_CPU_HAS_FEATURE (flags, arm_ext_div)
+         && !ARM_CPU_HAS_FEATURE (arm_arch_used, arm_arch_any)))
     aeabi_set_attribute_int (Tag_DIV_use, 2);
-  else if (ARM_CPU_HAS_FEATURE (flags, arm_ext_div))
-    aeabi_set_attribute_int (Tag_DIV_use, 0);
-  else
-    aeabi_set_attribute_int (Tag_DIV_use, 1);
 
   /* Tag_MP_extension_use.  */
   if (ARM_CPU_HAS_FEATURE (flags, arm_ext_mp))
index 878321dc5d0795bc740857baa5dcdc451884bb4d..7ac59cd70029959fdb7000698a6ee194ea697dd9 100644 (file)
@@ -1,3 +1,86 @@
+2012-03-16  Matthew Gretton-Dann  <matther.gretton-dann@arm.com>
+
+       * gas/testsuite/gas/arm/any-idiv.d: New testcase.
+       * gas/testsuite/gas/arm/any-idiv.s: Likewise.
+       * gas/arm/attr-any-armv4t.d: Update expected output.
+       * gas/arm/attr-any-thumbv6.d: Likewise.
+       * gas/arm/attr-cpu-directive.d: Likewise.
+       * gas/arm/attr-default.d: Likewise.
+       * gas/arm/attr-march-armv1.d: Likewise.
+       * gas/arm/attr-march-armv2.d: Likewise.
+       * gas/arm/attr-march-armv2a.d: Likewise.
+       * gas/arm/attr-march-armv2s.d: Likewise.
+       * gas/arm/attr-march-armv3.d: Likewise.
+       * gas/arm/attr-march-armv3m.d: Likewise.
+       * gas/arm/attr-march-armv4.d: Likewise.
+       * gas/arm/attr-march-armv4t.d: Likewise.
+       * gas/arm/attr-march-armv4txm.d: Likewise.
+       * gas/arm/attr-march-armv4xm.d: Likewise.
+       * gas/arm/attr-march-armv5.d: Likewise.
+       * gas/arm/attr-march-armv5t.d: Likewise.
+       * gas/arm/attr-march-armv5te.d: Likewise.
+       * gas/arm/attr-march-armv5tej.d: Likewise.
+       * gas/arm/attr-march-armv5texp.d: Likewise.
+       * gas/arm/attr-march-armv5txm.d: Likewise.
+       * gas/arm/attr-march-armv6-m+os.d: Likewise.
+       * gas/arm/attr-march-armv6-m.d: Likewise.
+       * gas/arm/attr-march-armv6.d: Likewise.
+       * gas/arm/attr-march-armv6j.d: Likewise.
+       * gas/arm/attr-march-armv6k+sec.d: Likewise.
+       * gas/arm/attr-march-armv6k.d: Likewise.
+       * gas/arm/attr-march-armv6kt2.d: Likewise.
+       * gas/arm/attr-march-armv6s-m.d: Likewise.
+       * gas/arm/attr-march-armv6t2.d: Likewise.
+       * gas/arm/attr-march-armv6z.d: Likewise.
+       * gas/arm/attr-march-armv6zk.d: Likewise.
+       * gas/arm/attr-march-armv6zkt2.d: Likewise.
+       * gas/arm/attr-march-armv6zt2.d: Likewise.
+       * gas/arm/attr-march-armv7-a+mp.d: Likewise.
+       * gas/arm/attr-march-armv7-a+sec.d: Likewise.
+       * gas/arm/attr-march-armv7-a.d: Likewise.
+       * gas/arm/attr-march-armv7.d: Likewise.
+       * gas/arm/attr-march-armv7a.d: Likewise.
+       * gas/arm/attr-march-iwmmxt.d: Likewise.
+       * gas/arm/attr-march-iwmmxt2.d: Likewise.
+       * gas/arm/attr-march-xscale.d: Likewise.
+       * gas/arm/attr-mcpu.d: Likewise.
+       * gas/arm/attr-mfpu-arm1020e.d: Likewise.
+       * gas/arm/attr-mfpu-arm1020t.d: Likewise.
+       * gas/arm/attr-mfpu-arm1136jf-s.d: Likewise.
+       * gas/arm/attr-mfpu-arm1136jfs.d: Likewise.
+       * gas/arm/attr-mfpu-arm7500fe.d: Likewise.
+       * gas/arm/attr-mfpu-fpa.d: Likewise.
+       * gas/arm/attr-mfpu-fpa10.d: Likewise.
+       * gas/arm/attr-mfpu-fpa11.d: Likewise.
+       * gas/arm/attr-mfpu-fpe.d: Likewise.
+       * gas/arm/attr-mfpu-fpe2.d: Likewise.
+       * gas/arm/attr-mfpu-fpe3.d: Likewise.
+       * gas/arm/attr-mfpu-maverick.d: Likewise.
+       * gas/arm/attr-mfpu-neon-fp16.d: Likewise.
+       * gas/arm/attr-mfpu-neon.d: Likewise.
+       * gas/arm/attr-mfpu-softfpa.d: Likewise.
+       * gas/arm/attr-mfpu-softvfp+vfp.d: Likewise.
+       * gas/arm/attr-mfpu-softvfp.d: Likewise.
+       * gas/arm/attr-mfpu-vfp.d: Likewise.
+       * gas/arm/attr-mfpu-vfp10-r0.d: Likewise.
+       * gas/arm/attr-mfpu-vfp10.d: Likewise.
+       * gas/arm/attr-mfpu-vfp3.d: Likewise.
+       * gas/arm/attr-mfpu-vfp9.d: Likewise.
+       * gas/arm/attr-mfpu-vfpv2.d: Likewise.
+       * gas/arm/attr-mfpu-vfpv3-d16.d: Likewise.
+       * gas/arm/attr-mfpu-vfpv3.d: Likewise.
+       * gas/arm/attr-mfpu-vfpv4-d16.d: Likewise.
+       * gas/arm/attr-mfpu-vfpv4.d: Likewise.
+       * gas/arm/attr-mfpu-vfpxd.d: Likewise.
+       * gas/arm/attr-order.d: Likewise.
+       * gas/arm/attr-override-cpu-directive.d: Likewise.
+       * gas/arm/attr-override-mcpu.d: Likewise.
+       * gas/arm/eabi_attr_1.d: Likewise.
+       * gas/arm/mov-highregs-any.d: Likewise.
+       * gas/arm/mov-lowregs-any.d: Likewise.
+       * gas/arm/pr12198-1.d: Likewise.
+       * gas/arm/pr12198-2.d: Likewise.
+
 2012-03-15  Alan Modra  <amodra@gmail.com>
 
        * gas/i386/bundle-lock.d: Ignore trailing nops.
diff --git a/gas/testsuite/gas/arm/any-idiv.d b/gas/testsuite/gas/arm/any-idiv.d
new file mode 100644 (file)
index 0000000..05a89dd
--- /dev/null
@@ -0,0 +1,11 @@
+# name: attributes for 'any' CPU with Thumb integer divide
+# as:
+# readelf: -A
+# This test is only valid on EABI based ports.
+# target: *-*-*eabi
+
+Attribute Section: aeabi
+File Attributes
+  Tag_CPU_arch: v7
+  Tag_THUMB_ISA_use: Thumb-2
+  Tag_DIV_use: Allowed in v7-A with integer division extension
diff --git a/gas/testsuite/gas/arm/any-idiv.s b/gas/testsuite/gas/arm/any-idiv.s
new file mode 100644 (file)
index 0000000..bdbe9c4
--- /dev/null
@@ -0,0 +1,4 @@
+       .syntax unified
+       .text
+       .thumb
+       udiv r0, r1, r2
index 14be589ebd2792a7e96951d563722e268d873413..21e28dfbe6447bd378de1ff6dc667ac19d32a18f 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_arch: v4T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index be8ec46b466119b9959d9bb990ee1d1a42cbfa8f..d2b427696ed5995cad9c21fe173faf1669d4cabc 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_arch: v6
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index db0edfeb69cca9be87c36f3f8486d597f71ab1b9..f3c1081d2ccff147c4ce614c172e99b2f6b34eaa 100644 (file)
@@ -12,5 +12,4 @@ File Attributes
   Tag_CPU_arch_profile: Application
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 93d5bf636f24141c0ae541fc5e81b2f45480d26e..4439180dfeb37b364d4699d79bc838c62dfa86af 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 8c09564f70a4851936acdded38dd16605fdc54b1..4867087637cd2a853a5f53b05ebf208c5ce47c87 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "1"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index 0ed663a45e119bd27bf5b04c2dd1fa1a1caef0d4..352e38f1f797a1712a621aa37dfca6cf6873b9c7 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "2"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index 862ec74d144d378195786415044937ff5c64283c..956f6fd3046d01a4958e74f5ccd2198e3e7cf445 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "2A"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index 6db9d34ed0c74c67758e69aa111137810a47ef8f..67ba746148f41f39bd9d70119342dc6a3b5045ef 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "2S"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index aea9cf7ef5878d6c75dd50e85c44bd6d61f3284b..e3b606c1f771c280422b24f4b4b9b61988a8d389 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "3"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index a7df5a2d410836f5e29ec91f18376f0d8c9ec666..b3878cdbba978573914ad6c133b1a4db207ad8af 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "3M"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index 649d02c1fecb1a07b307552224ff47ba607039a8..c0c3b92bd4827a7ed6eb44bfb8b19805a8cd0042 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "4"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index 0ac758ffbb4f1c1316dc0a379be1ee015b76e71d..c2a5d98a1d74b79dca5356bbdb8c8bf54189f14a 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v4T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 260e6a696cdf8f8f10b492fa965e2dbdaa973579..2b29db5f8544a87bcecbd193d97910eea20d0f86 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v4T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index dea944bfcd1e4bcb5f25cef3b65b086ec6d63b15..b1966019ccccfb5e9f4730893f949c3ddc5777e7 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "4XM"
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index c21d80b50c4b509bf903f5b8eecd4322488c5b89..2ed81c9603b5fc6fccfcea39c455607bd1da5174 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "5"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
-  Tag_DIV_use: Not allowed
index 1270fd4271a488658d4738b617979e7d55c1ecef..23e132468e3041d28dbf45506a883a08ca87af49 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 2601545819466a380172c3c7b8b68319ca74dc57..25699959cb68241473aa671c38ba7401da68f3ad 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v5TE
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 3b4b636cb7fa12ce7692a4b406a2490c0b0fb7f2..780a9f98a9c89676205f0069aa0f5e9c8d8e125e 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v5TEJ
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 67a773070f7dcbbde7aa020dfe821b9c53d55f52..4f3a75f013df5f60c40e5b269d9ef0cf315f2a7b 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v5TE
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index e4d75c201278f3833fb4f05334392c0f7bc5116a..e78ca3fe7eea0397e6627a3013707c0880506348 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 7dd7a73f2418715c2f4faf4db377a2524291f9c2..e5d320851ca37b391f23e2d8131c0851aa2ab848 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6S-M
   Tag_CPU_arch_profile: Microcontroller
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 36ac3c8c778d0349791ffe93fc957f1a4a2ac75c..ad79347398411f7993b03471bf8724f8b75a6c95 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6-M
   Tag_CPU_arch_profile: Microcontroller
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index a8561e1233c7b2ca8dc584ae5a415f99dc229e02..f509d5faea647e91e9cd6c4959c3b266d3265487 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 627986c251544a50c356e11686778522cee687e9..d8b37ec8cda6b3664f69d886022abc06d06e503e 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index cff3f3acf30806684e803e3fd58bfe037d62e457..a50e8d4cb07a8fa655b9805e60c8427c171ec2ac 100644 (file)
@@ -11,5 +11,4 @@ File Attributes
   Tag_CPU_arch: v6KZ
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 321ecf2af7c0daa4de8df029410fde070a028d84..4ff70574b0ad80a8cf5e8ee92c4371153c7098c8 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6K
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index db2fe9aa63e787cb01e99e4e6dccafef1419df0d..43db36b19e76a82e1ec73c8e3cc04c96092205b2 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6T2
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
index 36ac3c8c778d0349791ffe93fc957f1a4a2ac75c..ad79347398411f7993b03471bf8724f8b75a6c95 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6-M
   Tag_CPU_arch_profile: Microcontroller
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index ac2aa238f6fa84b007d0b9ef117eed3385032f07..d0074f13a63fc1ed521ec3f52041c806ded866d2 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v6T2
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
index 6464be049cc381afc7c8086912d2cffb6155b24e..97b14df99139f76af245bf50d991bd42984dae03 100644 (file)
@@ -11,5 +11,4 @@ File Attributes
   Tag_CPU_arch: v6KZ
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 47b8ea81944a5af07facf0a2ff08c7376ee002ca..85f639b44bfb9c80425d7a1095dd1e15f681c746 100644 (file)
@@ -11,5 +11,4 @@ File Attributes
   Tag_CPU_arch: v6KZ
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 326acdec515a60f0bc62f364f439fcd3c1cff31a..5bc1c722b638981aee970a0b63348edd5b3f7a10 100644 (file)
@@ -11,5 +11,4 @@ File Attributes
   Tag_CPU_arch: v6T2
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index e07dca52f52764a98034a01a71a892c9df62dcd4..14e2c1202fca81c53645724b61b7c049ceb614b7 100644 (file)
@@ -11,5 +11,4 @@ File Attributes
   Tag_CPU_arch: v6T2
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 663a889ecd0fe86bd6eee0e2c552edc2402b46a9..74ff80dc3d8aa9286f8498d9fa2bc6663ae5db38 100644 (file)
@@ -13,4 +13,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_MPextension_use: Allowed
-  Tag_DIV_use: Not allowed
index 190189ee3c9e5371e7c197ec3fd6ae598c661cc7..1d5ed4eb6afafa042469fab22a87a252526a6ca7 100644 (file)
@@ -12,5 +12,4 @@ File Attributes
   Tag_CPU_arch_profile: Application
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 3a6fb3b5160f38c1af356b4bb48dac1d67d2037d..da687a75f0315f8826d8aac3110586c9a62fbef3 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_CPU_arch_profile: Application
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
index 57e021e1fae2c0e04d5af71833583317240981ed..8ca9e7d6d54ee1cd9f8ef11657f02422551dd91e 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "7"
   Tag_CPU_arch: v7
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
index 6ce60ef70c28ff371bb03783510a5cac4340e543..055b3cfcad050c2b15e3dd7729b9f9d86d1d1a9e 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_CPU_arch_profile: Application
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
index b6471473822678d516dc1eb0870214a146f4ac5e..ccc496164afefcd73d0b40585748206f665673ab 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_WMMX_arch: WMMXv1
-  Tag_DIV_use: Not allowed
index 69c3ef80ccf7c6cf72934b266f2996c43db13b0c..be46d2215347492a2f4295332c5525b0f844addf 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_WMMX_arch: WMMXv2
-  Tag_DIV_use: Not allowed
index 7b1761766ab37e2608af3fac8ffb7a419e12b705..5c80a6d86c47d6a130fa196ed7afd31984cfbde9 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v5TE
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 459f94ab0503453b8b812f557414c019d30cdc97..32da24887e46fefe4e90c68591d57a62189d9bfd 100644 (file)
@@ -14,5 +14,4 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_FP_arch: VFPv3
   Tag_Advanced_SIMD_arch: NEONv1
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index b6db97db9872fa2e417909d1145e603391fbcddf..95ea725dd032534de176671836a7a577ede7355f 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index efc2cd534ebd1a3650b61d4d63942716812b60c9..19b001b926b5164afb919019c8b4756e623315a7 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv1
-  Tag_DIV_use: Not allowed
index ed065e7db899060d2255435d292fe362a9191220..f25aebe2122bd2fcf18df1e77398fd5175fb54ca 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index f2de9befe2ac345b92cf95726491ff17352fec16..4b8fce6bdfaf91847ae81602d3c41be1274bb7e2 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index 5f1ca3032ba1286d537793f6437472c80e0ca86a..5e14e3f69ce8cfbae7befa5d2b026bd75626e540 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index da56a7d601f7296cffff6ae53f947fe126e5ac6f..425e44df1d7e47b658bb8075075e5cd9d0da34cc 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 6399fff4ddc114f6a99dce584ebfc62d902716b1..339daf08b44dc443cda6bb88dcc2253d90652509 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 1a4b9e701c8f9af768bb239b88dfd47527c91b96..5b94ac51152595480c84d6fffbd10e70299b68d8 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 87283b3731ef497ca6487329f2a4c503047217a7..416bb5bd0bfc630a29d0012f6bc6fc8b3359c8ac 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index bfcfb4afcc7742b6fcb38f486f91d1bfbb2f3e27..a34cc6f82b7a2b7122ef78c5d6d1b63bf30c1055 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index a578f750e26afee6fb5735618434a3d0fc155f08..c9174549e9412e8e628d7e7ca177cb378de3fcc1 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 994d4b69ca1d204131da0852591dfd37c941b01f..afbbc6ce2e3c445c443fffcb335979334890e28e 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 6f401bfbc31f710f1178ecb8278a9de46d3ef05c..3866572b2834d86bade940534f7d73fbc1227895 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_FP_arch: VFPv3
   Tag_Advanced_SIMD_arch: NEONv1
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index 1dd33a58812375212949d8232a2f46e99edd92a4..1d7d33b801b2890893c412892e462a11dcdd55d1 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
   Tag_Advanced_SIMD_arch: NEONv1
-  Tag_DIV_use: Not allowed
index abe315afbde762ef399d1c1943cf2bc36b739555..d46115bc35c473d5db09af341ab791b2be137028 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 462bc139b999708e2d7f5bfaaf018ee36953ad6c..d0524c29aeaba85393413e9f6928f17635d68cde 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index 8d9a8942415d7bbcab04a3125c79c383e88a72e9..bab19b607d337f44dff3c5b0c05e0d40a3406d75 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 9c66044e8001c0c5c7e3ff4d9b8a7e92d2f2157f..331b81a18039a85982f40d0a5434ea87a97351e7 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index bc44861f2188b0b02c0bde929ac46da0e261d3b6..6f89e6abe0985453a2e0aabc2d076616b122fe27 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv1
-  Tag_DIV_use: Not allowed
index 6f16f12b991358ce05f63fd6944f5bd4c5aa3428..37af0758170e365750182a9a3384a3283769767b 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index 5c0964c369e67cd8dae4202b8ad09dc5d591afbc..f02d2cdb54beddeb788e62cbf729be7d6aebc911 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
-  Tag_DIV_use: Not allowed
index 516b8b6e9391e975fd93fbd5011b7f57fdfae1c9..57f5df7eb22dcaa086fd513616800927b214d1f0 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index b259b8207be3ca645a49a440ad6d9157006ff4b2..678eb9eeb609b3e5691347bde276c2e85d98141e 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
-  Tag_DIV_use: Not allowed
index 88d9ca73827300738a69782c0b54c6a76586a997..36d9914bdebab4b1192605cc4986bded92e5c663 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3-D16
-  Tag_DIV_use: Not allowed
index 9b22499af73d381be6cfa621d17109c191150308..b6cf496d7dd1083da311419a1785181a4f5d17fe 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
-  Tag_DIV_use: Not allowed
index 3ec64bd3d7cf49f9fa0a683d906f26940057047e..967e912a5428fb3461329494f45cfac25f9b9561 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4-D16
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index 4d2726f0b15253955858a10ed58b625b02cb3ea8..fd92773a6a648b7abb9fffd5edaa143829b66ff3 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index 9a1a9f55477fafa5e7953b5945a14363ea687629..6896d17669d4ab0d2bc89153b046a82868f5015f 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv1
   Tag_ABI_HardFP_use: SP only
-  Tag_DIV_use: Not allowed
index 99ecd7ba48add55e3abdd5d3f88df28e910d5d26..83f9f68bffbef780358415613d54dff922339891 100644 (file)
@@ -13,7 +13,6 @@ File Attributes
   Tag_CPU_arch: v4T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
   Tag_unknown_63: "val"
   Tag_also_compatible_with: v6-M
   Tag_T2EE_use: Allowed
index 9423392ffa2e8e6273e7fb4d7c52d7611927bd8e..54c5e37bb1486275912d82b98fe543802c5730f9 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_name: "custom name"
   Tag_CPU_arch: v7
   Tag_THUMB_ISA_use: \?\?\? \(10\)
-  Tag_DIV_use: Not allowed
index 425f0959ff51f7bb658e6351b28232d3c7deb7ac..cfa11b9d7fcc63bf56c91ddbf8dc228718e7d7a6 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_CPU_arch: v4T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index a8762ff29b95a044ef266156ba1ee1858869abb8..e3e3982d419d47324c39399467b3ab92f1ed1826 100644 (file)
@@ -10,6 +10,5 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_ABI_VFP_args: VFP registers
   Tag_compatibility: flag = 3, vendor = GNU
-  Tag_DIV_use: Not allowed
   Tag_unknown_128: 1234 \(0x4d2\)
   Tag_unknown_129: "bar"
index 5f93ccd9d5b463aa076bf2a67eaf2dfe49f39690..0759de09eb1e370764b6404b6b02e43f9defff37 100644 (file)
@@ -5,5 +5,4 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_arch: v4T
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
 
index 1549df355088ab679ae664aac68599972fc5b08e..a6382f17f4401d1d26bf6481f7cacec06c0170e7 100644 (file)
@@ -5,5 +5,4 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_arch: v6
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
 
index c5f7718745f28aab4e2e85bc86694bddf663d55a..5bbd828b2dc20c992f8a901d80d2af2999c637b7 100644 (file)
@@ -9,4 +9,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_CPU_arch: v4T
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 39465c88838342028a021f98e55c57b69ce9bddc..6935bcfea939eb4260ad17e88946d497a2dddae5 100644 (file)
@@ -10,4 +10,3 @@ File Attributes
   Tag_CPU_arch: v6S-M
   Tag_CPU_arch_profile: Microcontroller
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index 3af56663fb497fb66a1b64272185c34112a493a5..a02c6f0eb9895f6fcaf858f511ebc3e5998af179 100644 (file)
@@ -1,3 +1,64 @@
+2012-03-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * ld-arm/arm-elf.exp: Add new testcases.
+       * ld-arm/attr-merge-2.attr: Update ouput.
+       * ld-arm/attr-merge-2a.s: Remove Tag_DIV_use test.
+       * ld-arm/attr-merge-2b.s: Likewise.
+       * ld-arm/attr-merge-3.attr: Updated expected output.
+       * ld-arm/attr-merge-4.attr: Likewise.
+       * ld-arm/attr-merge-5.attr: Likewise.
+       * ld-arm/attr-merge-6.attr: Likewise.
+       * ld-arm/attr-merge-7.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-vfp-1.d: Likewise.
+       * ld-arm/attr-merge-vfp-1r.d: Likewise.
+       * ld-arm/attr-merge-vfp-2.d: Likewise.
+       * ld-arm/attr-merge-vfp-2r.d: Likewise.
+       * ld-arm/attr-merge-vfp-3.d: Likewise.
+       * ld-arm/attr-merge-vfp-3r.d: Likewise.
+       * ld-arm/attr-merge-vfp-4.d: Likewise.
+       * ld-arm/attr-merge-vfp-4r.d: Likewise.
+       * ld-arm/attr-merge-vfp-5.d: Likewise.
+       * ld-arm/attr-merge-vfp-5r.d: Likewise.
+       * ld-arm/attr-merge-vfp-6.d: Likewise.
+       * ld-arm/attr-merge-vfp-6r.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.
+       * ld-arm/attr-merge-div-0.s: New testcase.
+       * ld-arm/attr-merge-div-00.d: Likewise.
+       * ld-arm/attr-merge-div-01-m3.d: Likewise.
+       * ld-arm/attr-merge-div-01.d: Likewise.
+       * ld-arm/attr-merge-div-02.d: Likewise.
+       * ld-arm/attr-merge-div-1.s: Likewise.
+       * ld-arm/attr-merge-div-10-m3.d: Likewise.
+       * ld-arm/attr-merge-div-10.d: Likewise.
+       * ld-arm/attr-merge-div-11.d: Likewise.
+       * ld-arm/attr-merge-div-12.d: Likewise.
+       * ld-arm/attr-merge-div-120.d: Likewise.
+       * ld-arm/attr-merge-div-2.s: Likewise.
+       * ld-arm/attr-merge-div-20.d: Likewise.
+       * ld-arm/attr-merge-div-21.d: Likewise.
+       * ld-arm/attr-merge-div-22.d: Likewise.
+
 2012-03-16  Alan Modra  <amodra@gmail.com>
 
        * ld-gc/pr13683.d: Accept powerpc64 function descriptor syms.
index c7a0b2c33ed2bbd7834993cfb52b13dc96faacdc..789c7425f2ffb5b3f528ffed41234c22216795bd 100644 (file)
@@ -690,6 +690,18 @@ set armeabitests {
 }
 
 run_ld_link_tests $armeabitests
+run_dump_test "attr-merge-div-00"
+run_dump_test "attr-merge-div-01"
+run_dump_test "attr-merge-div-10"
+run_dump_test "attr-merge-div-01-m3"
+run_dump_test "attr-merge-div-10-m3"
+run_dump_test "attr-merge-div-11"
+run_dump_test "attr-merge-div-12"
+run_dump_test "attr-merge-div-120"
+run_dump_test "attr-merge-div-21"
+run_dump_test "attr-merge-div-22"
+run_dump_test "attr-merge-div-02"
+run_dump_test "attr-merge-div-20"
 run_dump_test "attr-merge-wchar-00"
 run_dump_test "attr-merge-wchar-02"
 run_dump_test "attr-merge-wchar-04"
index e34111b9d7ab23550a15cd392faae7789015892a..578333b26336ae73b77a3b36e4fb75954c1ce98b 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Allowed in v7-A with integer division extension
index 9d9ae18485cbc1121367b2128b3f5f4cb7d8d3f7..03031634b00ab048a1459fd023df12bc807d5751 100644 (file)
@@ -7,5 +7,4 @@
        .eabi_attribute 25, 1
        .eabi_attribute 26, 1
        .eabi_attribute 30, 6
-       .eabi_attribute Tag_DIV_use, 1
        .file   "attr-merge-2a.s"
index 6aa8da90249ef67bf96814626ca197e25ec9079b..047890a04d1302f9331bd7fd6a924c4cea1f3e0b 100644 (file)
@@ -8,5 +8,4 @@
        .eabi_attribute 26, 1
        .eabi_attribute 30, 6
        .eabi_attribute 18, 4
-       .eabi_attribute Tag_DIV_use, 2
        .file   "attr-merge-2b.s"
index b0f8ef97c6e582ef2b28c37e3c86092bd455b9ac..8d7d1c3370252733ce3e96ca73d79ba2e5da9074 100644 (file)
@@ -27,5 +27,6 @@ File Attributes
   Tag_CPU_unaligned_access: v6
   Tag_FP_HP_extension: Allowed
   Tag_MPextension_use: Allowed
+  Tag_DIV_use: Not allowed
   Tag_T2EE_use: Allowed
   Tag_Virtualization_use: TrustZone
index c8fc7ecffea8de82dfbe69942f980d0f3f50c699..75fd063117dbf44c284222f839da67366bb1e7ac 100644 (file)
@@ -5,5 +5,4 @@ File Attributes
   Tag_CPU_arch_profile: Microcontroller
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
   Tag_also_compatible_with: v6-M
index f016708d9f5493e580e4aa7e4f2d03753e234bfc..9d3e97100b57d15b22574f856b1d6dd90a5b41aa 100644 (file)
@@ -3,4 +3,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_compatibility: flag = 1, vendor = gnu
-  Tag_DIV_use: Not allowed
index 9e2324ff2fed963d1db21909a6d4d38d986c9c07..0af32f7751d14d0221a6b31484555ffb395ac352 100644 (file)
@@ -6,5 +6,4 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_MPextension_use: Allowed
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index 9e2324ff2fed963d1db21909a6d4d38d986c9c07..0af32f7751d14d0221a6b31484555ffb395ac352 100644 (file)
@@ -6,5 +6,4 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
   Tag_MPextension_use: Allowed
-  Tag_DIV_use: Not allowed
   Tag_Virtualization_use: TrustZone
index b39634fe23aefb43199d1115007d3bb0afc4908e..f69f1e76c289050b9f80cba62cee3ef344f5109d 100644 (file)
@@ -4,4 +4,3 @@ File Attributes
   Tag_CPU_arch: v7
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-2
-  Tag_DIV_use: Not allowed
index ab8916ba7061ddb862bb8215a338bad94ac0ed93..55f69659c905b6063e8f52a6485617959c469dd8 100644 (file)
@@ -5,4 +5,3 @@ File Attributes
   Tag_CPU_arch: v6K
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-div-0.s b/ld/testsuite/ld-arm/attr-merge-div-0.s
new file mode 100644 (file)
index 0000000..2ebcfd8
--- /dev/null
@@ -0,0 +1 @@
+       .eabi_attribute Tag_DIV_use, 0
diff --git a/ld/testsuite/ld-arm/attr-merge-div-00.d b/ld/testsuite/ld-arm/attr-merge-div-00.d
new file mode 100644 (file)
index 0000000..942662e
--- /dev/null
@@ -0,0 +1,12 @@
+#source: attr-merge-div-0.s
+#source: attr-merge-div-0.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
diff --git a/ld/testsuite/ld-arm/attr-merge-div-01-m3.d b/ld/testsuite/ld-arm/attr-merge-div-01-m3.d
new file mode 100644 (file)
index 0000000..c0cdd49
--- /dev/null
@@ -0,0 +1,14 @@
+#source: attr-merge-div-0.s
+#source: attr-merge-div-1.s
+#as: -mcpu=cortex-m3
+#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: "Cortex-M3"
+  Tag_CPU_arch: v7
+  Tag_CPU_arch_profile: Microcontroller
+  Tag_THUMB_ISA_use: Thumb-2
diff --git a/ld/testsuite/ld-arm/attr-merge-div-01.d b/ld/testsuite/ld-arm/attr-merge-div-01.d
new file mode 100644 (file)
index 0000000..f81a81e
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-0.s
+#source: attr-merge-div-1.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-div-02.d b/ld/testsuite/ld-arm/attr-merge-div-02.d
new file mode 100644 (file)
index 0000000..3684950
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-0.s
+#source: attr-merge-div-2.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Allowed in v7-A with integer division extension
diff --git a/ld/testsuite/ld-arm/attr-merge-div-1.s b/ld/testsuite/ld-arm/attr-merge-div-1.s
new file mode 100644 (file)
index 0000000..d74812d
--- /dev/null
@@ -0,0 +1 @@
+       .eabi_attribute Tag_DIV_use, 1
diff --git a/ld/testsuite/ld-arm/attr-merge-div-10-m3.d b/ld/testsuite/ld-arm/attr-merge-div-10-m3.d
new file mode 100644 (file)
index 0000000..3736e59
--- /dev/null
@@ -0,0 +1,14 @@
+#source: attr-merge-div-1.s
+#source: attr-merge-div-0.s
+#as: -mcpu=cortex-m3
+#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: "Cortex-M3"
+  Tag_CPU_arch: v7
+  Tag_CPU_arch_profile: Microcontroller
+  Tag_THUMB_ISA_use: Thumb-2
diff --git a/ld/testsuite/ld-arm/attr-merge-div-10.d b/ld/testsuite/ld-arm/attr-merge-div-10.d
new file mode 100644 (file)
index 0000000..32614ee
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-1.s
+#source: attr-merge-div-0.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-div-11.d b/ld/testsuite/ld-arm/attr-merge-div-11.d
new file mode 100644 (file)
index 0000000..95dc8db
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-1.s
+#source: attr-merge-div-1.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-div-12.d b/ld/testsuite/ld-arm/attr-merge-div-12.d
new file mode 100644 (file)
index 0000000..73d70ff
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-1.s
+#source: attr-merge-div-2.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Allowed in v7-A with integer division extension
diff --git a/ld/testsuite/ld-arm/attr-merge-div-120.d b/ld/testsuite/ld-arm/attr-merge-div-120.d
new file mode 100644 (file)
index 0000000..8891e4b
--- /dev/null
@@ -0,0 +1,16 @@
+#source: attr-merge-div-1.s
+#source: attr-merge-div-2.s
+#source: attr-merge-div-0.s
+#as: -mcpu=cortex-m3
+#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: "Cortex-M3"
+  Tag_CPU_arch: v7
+  Tag_CPU_arch_profile: Microcontroller
+  Tag_THUMB_ISA_use: Thumb-2
+  Tag_DIV_use: Allowed in v7-A with integer division extension
diff --git a/ld/testsuite/ld-arm/attr-merge-div-2.s b/ld/testsuite/ld-arm/attr-merge-div-2.s
new file mode 100644 (file)
index 0000000..20394c8
--- /dev/null
@@ -0,0 +1 @@
+       .eabi_attribute Tag_DIV_use, 2
diff --git a/ld/testsuite/ld-arm/attr-merge-div-20.d b/ld/testsuite/ld-arm/attr-merge-div-20.d
new file mode 100644 (file)
index 0000000..fd494bb
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-2.s
+#source: attr-merge-div-0.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Allowed in v7-A with integer division extension
diff --git a/ld/testsuite/ld-arm/attr-merge-div-21.d b/ld/testsuite/ld-arm/attr-merge-div-21.d
new file mode 100644 (file)
index 0000000..afd0f8d
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-2.s
+#source: attr-merge-div-1.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Allowed in v7-A with integer division extension
diff --git a/ld/testsuite/ld-arm/attr-merge-div-22.d b/ld/testsuite/ld-arm/attr-merge-div-22.d
new file mode 100644 (file)
index 0000000..c70da03
--- /dev/null
@@ -0,0 +1,13 @@
+#source: attr-merge-div-2.s
+#source: attr-merge-div-2.s
+#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_ARM_ISA_use: Yes
+  Tag_THUMB_ISA_use: Thumb-1
+  Tag_DIV_use: Allowed in v7-A with integer division extension
index 5755803a80c8a04d3f9a1953cf2ab7bbf0fbb5dc..bf44f43c7144058e7038fff2580a8d0932bde205 100644 (file)
@@ -11,4 +11,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index d950b3ec247d12afee9774674f65da5f80897a26..6d523fb06b8ff22098604a7775d9de2fb725adea 100644 (file)
@@ -11,4 +11,3 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
index c210a06d01cd9731ff38bfcd604ff2de3018247d..b02ba6d6d296799920e64cd221dc6786b1af108f 100644 (file)
@@ -11,5 +11,4 @@ Attribute Section: aeabi
 File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
-  Tag_DIV_use: Not allowed
   Tag_unknown_82: 1 \(0x1\)
index 99fc8e47fadb167945994f04babc8d900c20251b..86257351767775879ec1f4ab3c92b1f07d12f958 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3-D16
-  Tag_DIV_use: Not allowed
index 42bfe995137823942163a0f5cf9fde1b24e6ad95..d7a15d7bb642e424cfe39988bb48fb0c1ea978f4 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3-D16
-  Tag_DIV_use: Not allowed
index 3161e1196d7bb9ccb39902992465f7192b870482..6444bd00a3de889e06e9b7a7bce2c5204fada783 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
-  Tag_DIV_use: Not allowed
index 9c6367f49e1d15fe2678365882ce45cf60efda99..1d36983304e2a9c18d41abe2f55d60ca2eec7b9e 100644 (file)
@@ -11,4 +11,3 @@ File Attributes
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
-  Tag_DIV_use: Not allowed
index 9853879acdbd0ed886f6611252f528c760a9fb3e..ee89384a28b641dfc7f7cf82ab06833bf384adeb 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4-D16
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index 24df9729928fc3b7a178e7cdc164e347ca532298..d06bd2732c4e29318772ff7853ee271e995e1987 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4-D16
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index 469fc9ba3f002f272c64c396d6af9add5b29174c..c18d672d194f78dacdac3260b04c4b32a373615f 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index c84e50800c701a30c23e92ee7449c4d66f784707..327e0c384fe47246e7c88fbd977f8063bfb267ad 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index dc0c6ee816117eb20a3ee3acc917366582a44a5d..cd55a86b74262ccdc8c3f342e7b5e5d66b3bb724 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index 5e1d23af29d776654f2d0896b1a676e86e1c814b..505c31b36c0795a4a255e55e6831f683316148e0 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv4
   Tag_FP_HP_extension: Allowed
-  Tag_DIV_use: Not allowed
index ca891814391696d064494606ba1128a3064df9c4..54d063fac29cc0995ef30c44c495f9cf22b54770 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
   Tag_ABI_HardFP_use: SP and DP
-  Tag_DIV_use: Not allowed
index f5336322531250d831d516417bc3cf19c956786e..f32d4fcb58e9fedcfdf30af7d2f6e4b52468af4b 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv3
   Tag_ABI_HardFP_use: SP and DP
-  Tag_DIV_use: Not allowed
index 88e5d2519e7ca1996e53c4044d16ff7c70ded276..8a01f2d2104967dd9574fbc36f79e59dfa3efbc5 100644 (file)
@@ -19,4 +19,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index 73df821fbbd7abcc6ceed5eb0cc85bf2f7f5d74b..4242822c8d537abe9b8c638e1485ffa5f823c0ec 100644 (file)
@@ -19,4 +19,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index f55bf52a222903d618e87b605d730989755f3c4b..f3935169d3843abc2746927555d7418e3262ea31 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index 500b6a9facd709acb22fc60375f2d487e84993f8..f662120c56cbf61cab3e8d1aaf3d19cb740152be 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index c1d4efd08662600a67c17173c36d4dd73ad3525b..16cc469683b59cc7657c749dbfc26c77817397ba 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index cd119803e210905df8de7652030d4abf3b45a3fd..41413b9d6bf7e8f8da276b8add2eb83a301eb320 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index b60e458e7cdfb15c40871cbbd49f49c22e8bb4b8..c0b12488a522187f8b4ad3e90cdcf90247ff5b7b 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index 96738b1d193353603a8260f51b376c7459ba6a83..b81fb1588502dcacf186bc161816bffb2a54e550 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index 22539de4973a08f0c1fb4e1606ed92ccf78ea464..e9a1e944e4828dbc829d97d1cd2be6ce9f0681e3 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index c0e67dcaf8ff3cea248cfd724f308ae702b942f0..bf756606de0981af4f73a6ad27cfe0b948f95de9 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index e7f256638889b01a6f55d7aafd05fe7cb8dcdb9c..0c9b33e574f521defc0afec95f9ace24d53665e4 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index efeafccd84189da37263ec2d22a8f67c8177b7cd..54f0c54a44e03b7d1244b2b27e710393b02fd33d 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index 39cb58a502128b15df66aa213e41b40744ebf6d2..46be48c223801db356563d2efcf36fc56d384bc2 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index b989f35451a9ac08acab6365868caa443ebb7934..cc72d3e4da16ecd0bc5f2fceae485e8cdadce2a9 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index 988dd6ebd7ebf74e9a6ec66b4b96c65b31ab60c3..35eb756e1c3b778863bbc108415f9598641ae47d 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index acda7e7bacf11be0ad4a73ce6815fa9bf7712e04..c0fba85666b51ea63bdeb2fcaf7b5d5b32d6d395 100644 (file)
@@ -20,4 +20,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed
index f07930e2b6145165b2ee5a54ba4cad4d3388cea3..578333b26336ae73b77a3b36e4fb75954c1ce98b 100644 (file)
@@ -12,4 +12,3 @@ File Attributes
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
-  Tag_DIV_use: Not allowed