aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2010-05-11 17:36:33 +0000
committerNick Clifton <nickc@redhat.com>2010-05-11 17:36:33 +0000
commit4547cb569c36286f0b5e5d0b5cfd86ce3ba4cbdb (patch)
tree5e4092bd780f96d648424b862eb8cbfdd032a70d
parentd02691ef9ab6da5a9d5a21f80f31cf679f13e507 (diff)
downloadgdb-4547cb569c36286f0b5e5d0b5cfd86ce3ba4cbdb.zip
gdb-4547cb569c36286f0b5e5d0b5cfd86ce3ba4cbdb.tar.gz
gdb-4547cb569c36286f0b5e5d0b5cfd86ce3ba4cbdb.tar.bz2
2010-05-10 Andrew Stubbs <ams@codesourcery.com>
gas/ * config/tc-arm.c (aeabi_set_public_attributes): Set Tag_DIV_use. gas/testsuite/ * gas/arm/attr-cpu-directive.d: Add Tag_DIV_use. * 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.d: Likewise. * gas/arm/attr-march-armv6.d: Likewise. * gas/arm/attr-march-armv6j.d: Likewise. * gas/arm/attr-march-armv6k.d: Likewise. * gas/arm/attr-march-armv6kt2.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.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-marvell-f.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. ld/testsuite/ * ld-arm/attr-merge-2.attr: Add Tag_DIV_use. * ld-arm/attr-merge-2a.s: Likewise. * ld-arm/attr-merge-2b.s: Likewise. * ld-arm/attr-merge-3a.s: Likewise. * ld-arm/attr-merge-3b.s: Likewise. * 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-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. 2010-04-07 Jie Zhang <jie@codesourcery.com> gas/ * config/tc-arm.c (aeabi_set_public_attributes): Set Tag_ABI_HardFP_use to 1 if a single precision FPU is selected. gas/testsuite/ * gas/arm/attr-mfpu-vfpxd.d: New test. bfd/ * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge Tag_ABI_HardFP_use correctly. ld/testsuite/ * ld-arm/attr-merge-vfp-6.d: New test. * ld-arm/attr-merge-vfp-6r.d: New test. * ld-arm/attr-merge-vfpv3xd.s: New test. * ld-arm/arm-elf.exp: Add attr-merge-vfp-6 and attr-merge-vfp-6r. 2010-05-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> * arm-dis.c (thumb_opcodes): Update ldmia entry to use new %W format. (print_insn_thumb16): Add support for new %W format. * gas/arm/thumb32.d: Fix expected disassembly of ldmia instruction.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.c46
-rw-r--r--gas/ChangeLog9
-rw-r--r--gas/config/tc-arm.c14
-rw-r--r--gas/testsuite/ChangeLog80
-rw-r--r--gas/testsuite/gas/arm/attr-cpu-directive.d1
-rw-r--r--gas/testsuite/gas/arm/attr-default.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv1.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv2a.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv2s.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv3.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv3m.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv4.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv4t.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv4txm.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv4xm.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv5.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv5t.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv5te.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv5tej.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv5texp.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv5txm.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6-m.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6j.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6k.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6kt2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6t2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6z.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6zk.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6zkt2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6zt2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv7-a.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv7.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv7a.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-iwmmxt.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-iwmmxt2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-xscale.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mcpu.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-arm1020e.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-arm1020t.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-fpa.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-fpa10.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-fpa11.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-fpe.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-fpe2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-fpe3.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-maverick.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-neon.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-softfpa.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-softvfp.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfp.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfp10.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfp3.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfp9.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfpv2.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfpv3.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfpv4.d1
-rw-r--r--gas/testsuite/gas/arm/attr-mfpu-vfpxd.d2
-rw-r--r--gas/testsuite/gas/arm/attr-order.d1
-rw-r--r--gas/testsuite/gas/arm/attr-override-cpu-directive.d1
-rw-r--r--gas/testsuite/gas/arm/attr-override-mcpu.d1
-rw-r--r--gas/testsuite/gas/arm/eabi_attr_1.d1
-rw-r--r--gas/testsuite/gas/arm/thumb32.d2
-rw-r--r--ld/testsuite/ChangeLog51
-rw-r--r--ld/testsuite/ld-arm/arm-elf.exp2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-2.attr1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-2a.s1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-2b.s1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-3a.s1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-3b.s1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-4.attr1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-5.attr1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-6.attr2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-7.attr2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-arch-1.attr1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-arch-2.attr1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-unknown-2.d2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-unknown-2r.d2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-unknown-3.d2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-1.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-1r.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-2.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-2r.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-3.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-3r.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-4.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-4r.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-5.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-5r.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-6.d15
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfp-6r.d15
-rw-r--r--ld/testsuite/ld-arm/attr-merge-vfpv3xd.s2
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-00.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-02.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-04.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-20.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-22.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-40.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge-wchar-44.d1
-rw-r--r--ld/testsuite/ld-arm/attr-merge.attr1
-rw-r--r--opcodes/ChangeLog6
-rw-r--r--opcodes/arm-dis.c11
121 files changed, 359 insertions, 13 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5cfcc87..cbfe6af 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-11 Jie Zhang <jie@codesourcery.com>
+
+ * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge
+ Tag_ABI_HardFP_use correctly.
+
2010-05-11 Alan Modra <amodra@gmail.com>
* coffcode.h (coff_write_object_contents): Enclose all occurrences
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 18fddc6..df25977 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -10106,6 +10106,11 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
break;
case Tag_FP_arch:
{
+ /* Tag_ABI_HardFP_use is handled along with Tag_FP_arch since
+ the meaning of Tag_ABI_HardFP_use depends on Tag_FP_arch
+ when it's 0. It might mean absence of FP hardware if
+ Tag_FP_arch is zero, otherwise it is effectively SP + DP. */
+
static const struct
{
int ver;
@@ -10124,6 +10129,40 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
int regs;
int newval;
+ /* If the output has no requirement about FP hardware,
+ follow the requirement of the input. */
+ if (out_attr[i].i == 0)
+ {
+ BFD_ASSERT (out_attr[Tag_ABI_HardFP_use].i == 0);
+ out_attr[i].i = in_attr[i].i;
+ out_attr[Tag_ABI_HardFP_use].i
+ = in_attr[Tag_ABI_HardFP_use].i;
+ break;
+ }
+ /* If the input has no requirement about FP hardware, do
+ nothing. */
+ else if (in_attr[i].i == 0)
+ {
+ BFD_ASSERT (in_attr[Tag_ABI_HardFP_use].i == 0);
+ break;
+ }
+
+ /* Both the input and the output have nonzero Tag_FP_arch.
+ So Tag_ABI_HardFP_use is (SP & DP) when it's zero. */
+
+ /* If both the input and the output have zero Tag_ABI_HardFP_use,
+ do nothing. */
+ if (in_attr[Tag_ABI_HardFP_use].i == 0
+ && out_attr[Tag_ABI_HardFP_use].i == 0)
+ ;
+ /* If the input and the output have different Tag_ABI_HardFP_use,
+ the combination of them is 3 (SP & DP). */
+ else if (in_attr[Tag_ABI_HardFP_use].i
+ != out_attr[Tag_ABI_HardFP_use].i)
+ out_attr[Tag_ABI_HardFP_use].i = 3;
+
+ /* Now we can handle Tag_FP_arch. */
+
/* Values greater than 6 aren't defined, so just pick the
biggest */
if (in_attr[i].i > 6 && in_attr[i].i > out_attr[i].i)
@@ -10244,12 +10283,7 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
/* Merged in target-independent code. */
break;
case Tag_ABI_HardFP_use:
- /* 1 (SP) and 2 (DP) conflict, so combine to 3 (SP & DP). */
- if ((in_attr[i].i == 1 && out_attr[i].i == 2)
- || (in_attr[i].i == 2 && out_attr[i].i == 1))
- out_attr[i].i = 3;
- else if (in_attr[i].i > out_attr[i].i)
- out_attr[i].i = in_attr[i].i;
+ /* This is handled along with Tag_FP_arch. */
break;
case Tag_ABI_FP_16bit_format:
if (in_attr[i].i != 0 && out_attr[i].i != 0)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1ab09e8..0ec4f60 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2010-05-11 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/tc-arm.c (aeabi_set_public_attributes): Set Tag_DIV_use.
+
+2010-05-11 Jie Zhang <jie@codesourcery.com>
+
+ * config/tc-arm.c (aeabi_set_public_attributes): Set
+ Tag_ABI_HardFP_use to 1 if a single precision FPU is selected.
+
2010-05-07 Tristan Gingold <gingold@adacore.com>
* Makefile.in: Regenerate with automake 1.11.1.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index a50ac1d..8c9b33b 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -22856,6 +22856,11 @@ aeabi_set_public_attributes (void)
|| ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v1xd))
aeabi_set_attribute_int (Tag_VFP_arch, 1);
+ /* Tag_ABI_HardFP_use. */
+ if (ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v1xd)
+ && !ARM_CPU_HAS_FEATURE (flags, fpu_vfp_ext_v1))
+ aeabi_set_attribute_int (Tag_ABI_HardFP_use, 1);
+
/* Tag_WMMX_arch. */
if (ARM_CPU_HAS_FEATURE (flags, arm_cext_iwmmxt2))
aeabi_set_attribute_int (Tag_WMMX_arch, 2);
@@ -22871,6 +22876,15 @@ aeabi_set_public_attributes (void)
/* Tag_VFP_HP_extension (formerly Tag_NEON_FP16_arch). */
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_div))
+ aeabi_set_attribute_int (Tag_DIV_use, 0);
+ /* Fill this in when gas supports v7a sdiv/udiv.
+ else if (... v7a with div extension used ...)
+ aeabi_set_attribute_int (Tag_DIV_use, 2); */
+ else
+ aeabi_set_attribute_int (Tag_DIV_use, 1);
}
/* Add the default contents for the .ARM.attributes section. */
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index bed67b5..c267d2c 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,83 @@
+2010-05-11 Andrew Stubbs <ams@codesourcery.com>
+
+ * gas/arm/attr-cpu-directive.d: Add Tag_DIV_use.
+ * 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.d: Likewise.
+ * gas/arm/attr-march-armv6.d: Likewise.
+ * gas/arm/attr-march-armv6j.d: Likewise.
+ * gas/arm/attr-march-armv6k.d: Likewise.
+ * gas/arm/attr-march-armv6kt2.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.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-marvell-f.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.
+
+2010-05-11 Jie Zhang <jie@codesourcery.com>
+
+ * gas/arm/attr-mfpu-vfpxd.d: New test.
+
+2010-05-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
+
+ * gas/arm/thumb32.d: Fix expected disassembly of ldmia
+ instruction.
+
2010-05-05 Nathan Sidwell <nathan@codesourcery.com>
* gas/all/byte.s: New.
diff --git a/gas/testsuite/gas/arm/attr-cpu-directive.d b/gas/testsuite/gas/arm/attr-cpu-directive.d
index 0eeab8c..4e884ef 100644
--- a/gas/testsuite/gas/arm/attr-cpu-directive.d
+++ b/gas/testsuite/gas/arm/attr-cpu-directive.d
@@ -12,3 +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
diff --git a/gas/testsuite/gas/arm/attr-default.d b/gas/testsuite/gas/arm/attr-default.d
index 4439180..93d5bf6 100644
--- a/gas/testsuite/gas/arm/attr-default.d
+++ b/gas/testsuite/gas/arm/attr-default.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv1.d b/gas/testsuite/gas/arm/attr-march-armv1.d
index 4867087..8c09564 100644
--- a/gas/testsuite/gas/arm/attr-march-armv1.d
+++ b/gas/testsuite/gas/arm/attr-march-armv1.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "1"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv2.d b/gas/testsuite/gas/arm/attr-march-armv2.d
index 352e38f..0ed663a 100644
--- a/gas/testsuite/gas/arm/attr-march-armv2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv2.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "2"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv2a.d b/gas/testsuite/gas/arm/attr-march-armv2a.d
index 956f6fd..862ec74 100644
--- a/gas/testsuite/gas/arm/attr-march-armv2a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv2a.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "2A"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv2s.d b/gas/testsuite/gas/arm/attr-march-armv2s.d
index 67ba746..6db9d34 100644
--- a/gas/testsuite/gas/arm/attr-march-armv2s.d
+++ b/gas/testsuite/gas/arm/attr-march-armv2s.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "2S"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv3.d b/gas/testsuite/gas/arm/attr-march-armv3.d
index e3b606c..aea9cf7 100644
--- a/gas/testsuite/gas/arm/attr-march-armv3.d
+++ b/gas/testsuite/gas/arm/attr-march-armv3.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "3"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv3m.d b/gas/testsuite/gas/arm/attr-march-armv3m.d
index b3878cd..a7df5a2 100644
--- a/gas/testsuite/gas/arm/attr-march-armv3m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv3m.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "3M"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv4.d b/gas/testsuite/gas/arm/attr-march-armv4.d
index c0c3b92..649d02c 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "4"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv4t.d b/gas/testsuite/gas/arm/attr-march-armv4t.d
index c2a5d98..0ac758f 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4t.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4t.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v4T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv4txm.d b/gas/testsuite/gas/arm/attr-march-armv4txm.d
index 2b29db5..260e6a6 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4txm.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4txm.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v4T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv4xm.d b/gas/testsuite/gas/arm/attr-march-armv4xm.d
index b196601..dea944b 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4xm.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4xm.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "4XM"
Tag_CPU_arch: v4
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv5.d b/gas/testsuite/gas/arm/attr-march-armv5.d
index 2ed81c9..c21d80b 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "5"
Tag_CPU_arch: v5T
Tag_ARM_ISA_use: Yes
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv5t.d b/gas/testsuite/gas/arm/attr-march-armv5t.d
index 23e1324..1270fd4 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5t.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5t.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v5T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv5te.d b/gas/testsuite/gas/arm/attr-march-armv5te.d
index 2569995..2601545 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5te.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5te.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v5TE
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv5tej.d b/gas/testsuite/gas/arm/attr-march-armv5tej.d
index 780a9f9..3b4b636 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5tej.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5tej.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v5TEJ
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv5texp.d b/gas/testsuite/gas/arm/attr-march-armv5texp.d
index 4f3a75f..67a7730 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5texp.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5texp.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v5TE
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv5txm.d b/gas/testsuite/gas/arm/attr-march-armv5txm.d
index e78ca3f..e4d75c2 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5txm.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5txm.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v5T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6-m.d b/gas/testsuite/gas/arm/attr-march-armv6-m.d
index ad79347..36ac3c8 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6-m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6-m.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6-M
Tag_CPU_arch_profile: Microcontroller
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6.d b/gas/testsuite/gas/arm/attr-march-armv6.d
index f509d5f..a8561e1 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6j.d b/gas/testsuite/gas/arm/attr-march-armv6j.d
index d8b37ec..627986c 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6j.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6j.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6k.d b/gas/testsuite/gas/arm/attr-march-armv6k.d
index 4ff7057..321ecf2 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6k.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6k.d
@@ -11,3 +11,4 @@ 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/gas/testsuite/gas/arm/attr-march-armv6kt2.d b/gas/testsuite/gas/arm/attr-march-armv6kt2.d
index 43db36b..db2fe9a 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6kt2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6kt2.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6T2
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6t2.d b/gas/testsuite/gas/arm/attr-march-armv6t2.d
index d0074f1..ac2aa23 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6t2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6t2.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6T2
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6z.d b/gas/testsuite/gas/arm/attr-march-armv6z.d
index 5993737..f3eff4d 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6z.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6z.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6KZ
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6zk.d b/gas/testsuite/gas/arm/attr-march-armv6zk.d
index 0b2ab0e..2a41110 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6zk.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6zk.d
@@ -11,3 +11,4 @@ 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/gas/testsuite/gas/arm/attr-march-armv6zkt2.d b/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
index e360f1e..5021d23 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6T2
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv6zt2.d b/gas/testsuite/gas/arm/attr-march-armv6zt2.d
index 4b80a4d..92e6d45 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6zt2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6zt2.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v6T2
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a.d b/gas/testsuite/gas/arm/attr-march-armv7-a.d
index da687a7..3a6fb3b 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a.d
@@ -12,3 +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
diff --git a/gas/testsuite/gas/arm/attr-march-armv7.d b/gas/testsuite/gas/arm/attr-march-armv7.d
index 8ca9e7d..57e021e 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "7"
Tag_CPU_arch: v7
Tag_THUMB_ISA_use: Thumb-2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv7a.d b/gas/testsuite/gas/arm/attr-march-armv7a.d
index 055b3cf..6ce60ef 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7a.d
@@ -12,3 +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
diff --git a/gas/testsuite/gas/arm/attr-march-iwmmxt.d b/gas/testsuite/gas/arm/attr-march-iwmmxt.d
index ccc4961..b647147 100644
--- a/gas/testsuite/gas/arm/attr-march-iwmmxt.d
+++ b/gas/testsuite/gas/arm/attr-march-iwmmxt.d
@@ -12,3 +12,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_WMMX_arch: WMMXv1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-iwmmxt2.d b/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
index be46d22..69c3ef8 100644
--- a/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
+++ b/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
@@ -12,3 +12,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_WMMX_arch: WMMXv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-xscale.d b/gas/testsuite/gas/arm/attr-march-xscale.d
index 5c80a6d..7b17617 100644
--- a/gas/testsuite/gas/arm/attr-march-xscale.d
+++ b/gas/testsuite/gas/arm/attr-march-xscale.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v5TE
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mcpu.d b/gas/testsuite/gas/arm/attr-mcpu.d
index 4e8f321..86c8fe7 100644
--- a/gas/testsuite/gas/arm/attr-mcpu.d
+++ b/gas/testsuite/gas/arm/attr-mcpu.d
@@ -14,3 +14,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d b/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
index 95ea725..b6db97d 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d b/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
index 19b001b..efc2cd5 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d b/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
index f25aebe..ed065e7 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d b/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
index 4b8fce6..f2de9be 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d b/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
index 5e14e3f..5f1ca30 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpa.d b/gas/testsuite/gas/arm/attr-mfpu-fpa.d
index 425e44d..da56a7d 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpa.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpa.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpa10.d b/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
index 339daf0..6399fff 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpa11.d b/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
index 5b94ac5..1a4b9e7 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpe.d b/gas/testsuite/gas/arm/attr-mfpu-fpe.d
index 416bb5b..87283b3 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpe.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpe.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpe2.d b/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
index a34cc6f..bfcfb4a 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpe3.d b/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
index c917454..a578f75 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-maverick.d b/gas/testsuite/gas/arm/attr-mfpu-maverick.d
index afbbc6c..994d4b6 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-maverick.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-maverick.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d b/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
index 3866572..6f401bf 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
@@ -12,3 +12,4 @@ File Attributes
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-neon.d b/gas/testsuite/gas/arm/attr-mfpu-neon.d
index 1d7d33b..1dd33a5 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-neon.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-neon.d
@@ -11,3 +11,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
Tag_Advanced_SIMD_arch: NEONv1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-softfpa.d b/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
index d46115b..abe315a 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d b/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
index d0524c2..462bc13 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-softvfp.d b/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
index bab19b6..8d9a894 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
@@ -9,3 +9,4 @@ Attribute Section: aeabi
File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp.d b/gas/testsuite/gas/arm/attr-mfpu-vfp.d
index 331b81a..9c66044 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d b/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
index 6f89e6a..bc44861 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp10.d b/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
index 37af075..6f16f12 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp3.d b/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
index f02d2cd..5c0964c 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp9.d b/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
index 57f5df7..516b8b6 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
index 678eb9e..b259b82 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv2
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
index 36d9914..88d9ca7 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3-D16
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
index b6cf496..9b22499 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
@@ -10,3 +10,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
index 967e912..3ec64bd 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
@@ -11,3 +11,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4-D16
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
index fd92773..4d2726f 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
@@ -11,3 +11,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d b/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
index 735860e..9a1a9f5 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
@@ -10,3 +10,5 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv1
+ Tag_ABI_HardFP_use: SP only
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-order.d b/gas/testsuite/gas/arm/attr-order.d
index 83f9f68..99ecd7b 100644
--- a/gas/testsuite/gas/arm/attr-order.d
+++ b/gas/testsuite/gas/arm/attr-order.d
@@ -13,6 +13,7 @@ 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
diff --git a/gas/testsuite/gas/arm/attr-override-cpu-directive.d b/gas/testsuite/gas/arm/attr-override-cpu-directive.d
index 54c5e37..9423392 100644
--- a/gas/testsuite/gas/arm/attr-override-cpu-directive.d
+++ b/gas/testsuite/gas/arm/attr-override-cpu-directive.d
@@ -10,3 +10,4 @@ File Attributes
Tag_CPU_name: "custom name"
Tag_CPU_arch: v7
Tag_THUMB_ISA_use: \?\?\? \(10\)
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-override-mcpu.d b/gas/testsuite/gas/arm/attr-override-mcpu.d
index cfa11b9..425f095 100644
--- a/gas/testsuite/gas/arm/attr-override-mcpu.d
+++ b/gas/testsuite/gas/arm/attr-override-mcpu.d
@@ -11,3 +11,4 @@ File Attributes
Tag_CPU_arch: v4T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/eabi_attr_1.d b/gas/testsuite/gas/arm/eabi_attr_1.d
index e3e3982..a8762ff 100644
--- a/gas/testsuite/gas/arm/eabi_attr_1.d
+++ b/gas/testsuite/gas/arm/eabi_attr_1.d
@@ -10,5 +10,6 @@ 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"
diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d
index d04ef6b..530b86b 100644
--- a/gas/testsuite/gas/arm/thumb32.d
+++ b/gas/testsuite/gas/arm/thumb32.d
@@ -559,7 +559,7 @@ Disassembly of section .text:
0[0-9a-f]+ <[^>]+> e854 1f81 ldrex r1, \[r4, #516\].*
0[0-9a-f]+ <[^>]+> e844 2181 strex r1, r2, \[r4, #516\].*
0[0-9a-f]+ <[^>]+> c80e ldmia r0!, \{r1, r2, r3\}
-0[0-9a-f]+ <[^>]+> ca07 ldmia r2!, \{r0, r1, r2\}
+0[0-9a-f]+ <[^>]+> ca07 ldmia r2, \{r0, r1, r2\}
0[0-9a-f]+ <[^>]+> e892 0007 ldmia\.w r2, \{r0, r1, r2\}
0[0-9a-f]+ <[^>]+> e899 0007 ldmia\.w r9, \{r0, r1, r2\}
0[0-9a-f]+ <[^>]+> e890 0580 ldmia\.w r0, \{r7, r8, sl\}
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 565a624..bafd3bb 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,54 @@
+2010-05-11 Andrew Stubbs <ams@codesourcery.com>
+
+ * ld-arm/attr-merge-2.attr: Add Tag_DIV_use.
+ * ld-arm/attr-merge-2a.s: Likewise.
+ * ld-arm/attr-merge-2b.s: Likewise.
+ * ld-arm/attr-merge-3a.s: Likewise.
+ * ld-arm/attr-merge-3b.s: Likewise.
+ * 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-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.
+
+2010-05-11 Jie Zhang <jie@codesourcery.com>
+
+ * ld-arm/attr-merge-vfp-6.d: New test.
+ * ld-arm/attr-merge-vfp-6r.d: New test.
+ * ld-arm/attr-merge-vfpv3xd.s: New test.
+ * ld-arm/arm-elf.exp: Add attr-merge-vfp-6 and attr-merge-vfp-6r.
+
2010-05-07 Daniel Jacobowitz <dan@codesourcery.com>
* ld-arm/cortex-a8-fix-bl-rel-plt.d: New file.
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index 6180393..c23da54 100644
--- a/ld/testsuite/ld-arm/arm-elf.exp
+++ b/ld/testsuite/ld-arm/arm-elf.exp
@@ -518,4 +518,6 @@ run_dump_test "attr-merge-vfp-4"
run_dump_test "attr-merge-vfp-4r"
run_dump_test "attr-merge-vfp-5"
run_dump_test "attr-merge-vfp-5r"
+run_dump_test "attr-merge-vfp-6"
+run_dump_test "attr-merge-vfp-6r"
run_dump_test "attr-merge-incompatible"
diff --git a/ld/testsuite/ld-arm/attr-merge-2.attr b/ld/testsuite/ld-arm/attr-merge-2.attr
index 578333b..e34111b 100644
--- a/ld/testsuite/ld-arm/attr-merge-2.attr
+++ b/ld/testsuite/ld-arm/attr-merge-2.attr
@@ -12,3 +12,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-2a.s b/ld/testsuite/ld-arm/attr-merge-2a.s
index 0303163..9d9ae18 100644
--- a/ld/testsuite/ld-arm/attr-merge-2a.s
+++ b/ld/testsuite/ld-arm/attr-merge-2a.s
@@ -7,4 +7,5 @@
.eabi_attribute 25, 1
.eabi_attribute 26, 1
.eabi_attribute 30, 6
+ .eabi_attribute Tag_DIV_use, 1
.file "attr-merge-2a.s"
diff --git a/ld/testsuite/ld-arm/attr-merge-2b.s b/ld/testsuite/ld-arm/attr-merge-2b.s
index 047890a..6aa8da9 100644
--- a/ld/testsuite/ld-arm/attr-merge-2b.s
+++ b/ld/testsuite/ld-arm/attr-merge-2b.s
@@ -8,4 +8,5 @@
.eabi_attribute 26, 1
.eabi_attribute 30, 6
.eabi_attribute 18, 4
+ .eabi_attribute Tag_DIV_use, 2
.file "attr-merge-2b.s"
diff --git a/ld/testsuite/ld-arm/attr-merge-3a.s b/ld/testsuite/ld-arm/attr-merge-3a.s
index 789fcf1..bc7a0c1 100644
--- a/ld/testsuite/ld-arm/attr-merge-3a.s
+++ b/ld/testsuite/ld-arm/attr-merge-3a.s
@@ -36,3 +36,4 @@
.eabi_attribute Tag_conformance, "0"
.eabi_attribute Tag_Virtualization_use, 0
.eabi_attribute Tag_MPextension_use, 0
+ .eabi_attribute Tag_DIV_use, 0
diff --git a/ld/testsuite/ld-arm/attr-merge-3b.s b/ld/testsuite/ld-arm/attr-merge-3b.s
index 73d6590..681f661 100644
--- a/ld/testsuite/ld-arm/attr-merge-3b.s
+++ b/ld/testsuite/ld-arm/attr-merge-3b.s
@@ -36,3 +36,4 @@
.eabi_attribute Tag_conformance, "2.08"
.eabi_attribute Tag_Virtualization_use, 1
.eabi_attribute Tag_MPextension_use, 1
+ .eabi_attribute Tag_DIV_use, 1
diff --git a/ld/testsuite/ld-arm/attr-merge-4.attr b/ld/testsuite/ld-arm/attr-merge-4.attr
index 75fd063..c8fc7ec 100644
--- a/ld/testsuite/ld-arm/attr-merge-4.attr
+++ b/ld/testsuite/ld-arm/attr-merge-4.attr
@@ -5,4 +5,5 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-5.attr b/ld/testsuite/ld-arm/attr-merge-5.attr
index 9d3e971..f016708 100644
--- a/ld/testsuite/ld-arm/attr-merge-5.attr
+++ b/ld/testsuite/ld-arm/attr-merge-5.attr
@@ -3,3 +3,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_compatibility: flag = 1, vendor = gnu
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-6.attr b/ld/testsuite/ld-arm/attr-merge-6.attr
index e996c93..02d2705 100644
--- a/ld/testsuite/ld-arm/attr-merge-6.attr
+++ b/ld/testsuite/ld-arm/attr-merge-6.attr
@@ -6,4 +6,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_MPextension_use: Allowed
-
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-7.attr b/ld/testsuite/ld-arm/attr-merge-7.attr
index e996c93..02d2705 100644
--- a/ld/testsuite/ld-arm/attr-merge-7.attr
+++ b/ld/testsuite/ld-arm/attr-merge-7.attr
@@ -6,4 +6,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_MPextension_use: Allowed
-
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-arch-1.attr b/ld/testsuite/ld-arm/attr-merge-arch-1.attr
index f69f1e7..b39634f 100644
--- a/ld/testsuite/ld-arm/attr-merge-arch-1.attr
+++ b/ld/testsuite/ld-arm/attr-merge-arch-1.attr
@@ -4,3 +4,4 @@ File Attributes
Tag_CPU_arch: v7
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-arch-2.attr b/ld/testsuite/ld-arm/attr-merge-arch-2.attr
index ac7679c..4f9c905 100644
--- a/ld/testsuite/ld-arm/attr-merge-arch-2.attr
+++ b/ld/testsuite/ld-arm/attr-merge-arch-2.attr
@@ -5,3 +5,4 @@ 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-unknown-2.d b/ld/testsuite/ld-arm/attr-merge-unknown-2.d
index 851b2af..5755803 100644
--- a/ld/testsuite/ld-arm/attr-merge-unknown-2.d
+++ b/ld/testsuite/ld-arm/attr-merge-unknown-2.d
@@ -11,4 +11,4 @@ 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-unknown-2r.d b/ld/testsuite/ld-arm/attr-merge-unknown-2r.d
index 4914196..d950b3e 100644
--- a/ld/testsuite/ld-arm/attr-merge-unknown-2r.d
+++ b/ld/testsuite/ld-arm/attr-merge-unknown-2r.d
@@ -11,4 +11,4 @@ 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-unknown-3.d b/ld/testsuite/ld-arm/attr-merge-unknown-3.d
index 1d08bff..c210a06 100644
--- a/ld/testsuite/ld-arm/attr-merge-unknown-3.d
+++ b/ld/testsuite/ld-arm/attr-merge-unknown-3.d
@@ -11,5 +11,5 @@ 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\)
-
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-1.d b/ld/testsuite/ld-arm/attr-merge-vfp-1.d
index 8625735..99fc8e4 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-1.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-1.d
@@ -11,3 +11,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3-D16
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-1r.d b/ld/testsuite/ld-arm/attr-merge-vfp-1r.d
index d7a15d7..42bfe99 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-1r.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-1r.d
@@ -11,3 +11,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3-D16
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-2.d b/ld/testsuite/ld-arm/attr-merge-vfp-2.d
index 6444bd0..3161e11 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-2.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-2.d
@@ -11,3 +11,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-2r.d b/ld/testsuite/ld-arm/attr-merge-vfp-2r.d
index 1d36983..9c6367f 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-2r.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-2r.d
@@ -11,3 +11,4 @@ File Attributes
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv3
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-3.d b/ld/testsuite/ld-arm/attr-merge-vfp-3.d
index ee89384..9853879 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-3.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-3.d
@@ -12,3 +12,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4-D16
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-3r.d b/ld/testsuite/ld-arm/attr-merge-vfp-3r.d
index d06bd27..24df972 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-3r.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-3r.d
@@ -12,3 +12,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4-D16
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-4.d b/ld/testsuite/ld-arm/attr-merge-vfp-4.d
index c18d672..469fc9b 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-4.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-4.d
@@ -12,3 +12,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-4r.d b/ld/testsuite/ld-arm/attr-merge-vfp-4r.d
index 327e0c3..c84e508 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-4r.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-4r.d
@@ -12,3 +12,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-5.d b/ld/testsuite/ld-arm/attr-merge-vfp-5.d
index cd55a86..dc0c6ee 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-5.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-5.d
@@ -12,3 +12,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-5r.d b/ld/testsuite/ld-arm/attr-merge-vfp-5r.d
index 505c31b..5e1d23a 100644
--- a/ld/testsuite/ld-arm/attr-merge-vfp-5r.d
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-5r.d
@@ -12,3 +12,4 @@ File Attributes
Tag_THUMB_ISA_use: Thumb-1
Tag_FP_arch: VFPv4
Tag_FP_HP_extension: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-6.d b/ld/testsuite/ld-arm/attr-merge-vfp-6.d
new file mode 100644
index 0000000..ca89181
--- /dev/null
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-6.d
@@ -0,0 +1,15 @@
+#source: attr-merge-vfp-3.s
+#source: attr-merge-vfpv3xd.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_FP_arch: VFPv3
+ Tag_ABI_HardFP_use: SP and DP
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfp-6r.d b/ld/testsuite/ld-arm/attr-merge-vfp-6r.d
new file mode 100644
index 0000000..f533632
--- /dev/null
+++ b/ld/testsuite/ld-arm/attr-merge-vfp-6r.d
@@ -0,0 +1,15 @@
+#source: attr-merge-vfpv3xd.s
+#source: attr-merge-vfp-3.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_FP_arch: VFPv3
+ Tag_ABI_HardFP_use: SP and DP
+ Tag_DIV_use: Not allowed
diff --git a/ld/testsuite/ld-arm/attr-merge-vfpv3xd.s b/ld/testsuite/ld-arm/attr-merge-vfpv3xd.s
new file mode 100644
index 0000000..295ca17
--- /dev/null
+++ b/ld/testsuite/ld-arm/attr-merge-vfpv3xd.s
@@ -0,0 +1,2 @@
+.fpu vfpv3xd
+
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
index 8a01f2d..88e5d25 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
@@ -19,3 +19,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-00.d b/ld/testsuite/ld-arm/attr-merge-wchar-00.d
index 4242822..73df821 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-00.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-00.d
@@ -19,3 +19,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
index f393516..f55bf52 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-02.d b/ld/testsuite/ld-arm/attr-merge-wchar-02.d
index f662120..500b6a9 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-02.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-02.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
index 16cc469..c1d4efd 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-04.d b/ld/testsuite/ld-arm/attr-merge-wchar-04.d
index 41413b9..cd11980 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-04.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-04.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
index c0b1248..b60e458 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-20.d b/ld/testsuite/ld-arm/attr-merge-wchar-20.d
index b81fb15..96738b1 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-20.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-20.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
index e9a1e94..22539de 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-22.d b/ld/testsuite/ld-arm/attr-merge-wchar-22.d
index bf75660..c0e67dc 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-22.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-22.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
index 0c9b33e..e7f2566 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
index 54f0c54..efeafcc 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-40.d b/ld/testsuite/ld-arm/attr-merge-wchar-40.d
index 46be48c..39cb58a 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-40.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-40.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
index cc72d3e..b989f35 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d b/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
index 35eb756..988dd6e 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge-wchar-44.d b/ld/testsuite/ld-arm/attr-merge-wchar-44.d
index c0fba85..acda7e7 100644
--- a/ld/testsuite/ld-arm/attr-merge-wchar-44.d
+++ b/ld/testsuite/ld-arm/attr-merge-wchar-44.d
@@ -20,3 +20,4 @@ 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
diff --git a/ld/testsuite/ld-arm/attr-merge.attr b/ld/testsuite/ld-arm/attr-merge.attr
index 578333b..f07930e 100644
--- a/ld/testsuite/ld-arm/attr-merge.attr
+++ b/ld/testsuite/ld-arm/attr-merge.attr
@@ -12,3 +12,4 @@ 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
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index abc36cb..feea135 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,9 @@
+2010-05-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
+
+ * arm-dis.c (thumb_opcodes): Update ldmia entry to use new %W
+ format.
+ (print_insn_thumb16): Add support for new %W format.
+
2010-05-07 Tristan Gingold <gingold@adacore.com>
* Makefile.in: Regenerate with automake 1.11.1.
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 1d53128..c5b00da 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -1161,6 +1161,7 @@ static const struct opcode32 arm_opcodes[] =
%x print warning if conditional an not at end of IT block"
%X print "\t; unpredictable <IT:code>" if conditional
%I print IT instruction suffix and operands
+ %W print Thumb Writeback indicator for LDMIA
%<bitfield>r print bitfield as an ARM register
%<bitfield>d print bitfield as a decimal
%<bitfield>H print (bitfield * 2) as a decimal
@@ -1274,7 +1275,7 @@ static const struct opcode16 thumb_opcodes[] =
{ARM_EXT_V4T, 0xA800, 0xF800, "add%c\t%8-10r, sp, #%0-7W"},
/* format 15 */
{ARM_EXT_V4T, 0xC000, 0xF800, "stmia%c\t%8-10r!, %M"},
- {ARM_EXT_V4T, 0xC800, 0xF800, "ldmia%c\t%8-10r!, %M"},
+ {ARM_EXT_V4T, 0xC800, 0xF800, "ldmia%c\t%8-10r%W, %M"},
/* format 17 */
{ARM_EXT_V4T, 0xDF00, 0xFF00, "svc%c\t%0-7d"},
/* format 16 */
@@ -3438,6 +3439,14 @@ print_insn_thumb16 (bfd_vma pc, struct disassemble_info *info, long given)
}
break;
+ case 'W':
+ /* Print writeback indicator for a LDMIA. We are doing a
+ writeback if the base register is not in the register
+ mask. */
+ if ((given & (1 << ((given & 0x0700) >> 8))) == 0)
+ func (stream, "!");
+ break;
+
case 'b':
/* Print ARM V6T2 CZB address: pc+4+6 bits. */
{