From 4547cb569c36286f0b5e5d0b5cfd86ce3ba4cbdb Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 May 2010 17:36:33 +0000 Subject: [PATCH] 2010-05-10 Andrew Stubbs 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 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 * 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. --- bfd/ChangeLog | 5 ++ bfd/elf32-arm.c | 46 +++++++++-- gas/ChangeLog | 9 +++ gas/config/tc-arm.c | 14 ++++ gas/testsuite/ChangeLog | 80 +++++++++++++++++++ gas/testsuite/gas/arm/attr-cpu-directive.d | 1 + gas/testsuite/gas/arm/attr-default.d | 1 + gas/testsuite/gas/arm/attr-march-armv1.d | 1 + gas/testsuite/gas/arm/attr-march-armv2.d | 1 + gas/testsuite/gas/arm/attr-march-armv2a.d | 1 + gas/testsuite/gas/arm/attr-march-armv2s.d | 1 + gas/testsuite/gas/arm/attr-march-armv3.d | 1 + gas/testsuite/gas/arm/attr-march-armv3m.d | 1 + gas/testsuite/gas/arm/attr-march-armv4.d | 1 + gas/testsuite/gas/arm/attr-march-armv4t.d | 1 + gas/testsuite/gas/arm/attr-march-armv4txm.d | 1 + gas/testsuite/gas/arm/attr-march-armv4xm.d | 1 + gas/testsuite/gas/arm/attr-march-armv5.d | 1 + gas/testsuite/gas/arm/attr-march-armv5t.d | 1 + gas/testsuite/gas/arm/attr-march-armv5te.d | 1 + gas/testsuite/gas/arm/attr-march-armv5tej.d | 1 + gas/testsuite/gas/arm/attr-march-armv5texp.d | 1 + gas/testsuite/gas/arm/attr-march-armv5txm.d | 1 + gas/testsuite/gas/arm/attr-march-armv6-m.d | 1 + gas/testsuite/gas/arm/attr-march-armv6.d | 1 + gas/testsuite/gas/arm/attr-march-armv6j.d | 1 + gas/testsuite/gas/arm/attr-march-armv6k.d | 1 + gas/testsuite/gas/arm/attr-march-armv6kt2.d | 1 + gas/testsuite/gas/arm/attr-march-armv6t2.d | 1 + gas/testsuite/gas/arm/attr-march-armv6z.d | 1 + gas/testsuite/gas/arm/attr-march-armv6zk.d | 1 + gas/testsuite/gas/arm/attr-march-armv6zkt2.d | 1 + gas/testsuite/gas/arm/attr-march-armv6zt2.d | 1 + gas/testsuite/gas/arm/attr-march-armv7-a.d | 1 + gas/testsuite/gas/arm/attr-march-armv7.d | 1 + gas/testsuite/gas/arm/attr-march-armv7a.d | 1 + gas/testsuite/gas/arm/attr-march-iwmmxt.d | 1 + gas/testsuite/gas/arm/attr-march-iwmmxt2.d | 1 + gas/testsuite/gas/arm/attr-march-xscale.d | 1 + gas/testsuite/gas/arm/attr-mcpu.d | 1 + gas/testsuite/gas/arm/attr-mfpu-arm1020e.d | 1 + gas/testsuite/gas/arm/attr-mfpu-arm1020t.d | 1 + gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d | 1 + gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d | 1 + gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d | 1 + gas/testsuite/gas/arm/attr-mfpu-fpa.d | 1 + gas/testsuite/gas/arm/attr-mfpu-fpa10.d | 1 + gas/testsuite/gas/arm/attr-mfpu-fpa11.d | 1 + gas/testsuite/gas/arm/attr-mfpu-fpe.d | 1 + gas/testsuite/gas/arm/attr-mfpu-fpe2.d | 1 + gas/testsuite/gas/arm/attr-mfpu-fpe3.d | 1 + gas/testsuite/gas/arm/attr-mfpu-maverick.d | 1 + gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d | 1 + gas/testsuite/gas/arm/attr-mfpu-neon.d | 1 + gas/testsuite/gas/arm/attr-mfpu-softfpa.d | 1 + gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d | 1 + gas/testsuite/gas/arm/attr-mfpu-softvfp.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfp.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfp10.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfp3.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfp9.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfpv2.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfpv3.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfpv4.d | 1 + gas/testsuite/gas/arm/attr-mfpu-vfpxd.d | 2 + gas/testsuite/gas/arm/attr-order.d | 1 + .../gas/arm/attr-override-cpu-directive.d | 1 + gas/testsuite/gas/arm/attr-override-mcpu.d | 1 + gas/testsuite/gas/arm/eabi_attr_1.d | 1 + gas/testsuite/gas/arm/thumb32.d | 2 +- ld/testsuite/ChangeLog | 51 ++++++++++++ ld/testsuite/ld-arm/arm-elf.exp | 2 + ld/testsuite/ld-arm/attr-merge-2.attr | 1 + ld/testsuite/ld-arm/attr-merge-2a.s | 1 + ld/testsuite/ld-arm/attr-merge-2b.s | 1 + ld/testsuite/ld-arm/attr-merge-3a.s | 1 + ld/testsuite/ld-arm/attr-merge-3b.s | 1 + ld/testsuite/ld-arm/attr-merge-4.attr | 1 + ld/testsuite/ld-arm/attr-merge-5.attr | 1 + ld/testsuite/ld-arm/attr-merge-6.attr | 2 +- ld/testsuite/ld-arm/attr-merge-7.attr | 2 +- ld/testsuite/ld-arm/attr-merge-arch-1.attr | 1 + ld/testsuite/ld-arm/attr-merge-arch-2.attr | 1 + ld/testsuite/ld-arm/attr-merge-unknown-2.d | 2 +- ld/testsuite/ld-arm/attr-merge-unknown-2r.d | 2 +- ld/testsuite/ld-arm/attr-merge-unknown-3.d | 2 +- ld/testsuite/ld-arm/attr-merge-vfp-1.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-1r.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-2.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-2r.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-3.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-3r.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-4.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-4r.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-5.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-5r.d | 1 + ld/testsuite/ld-arm/attr-merge-vfp-6.d | 15 ++++ ld/testsuite/ld-arm/attr-merge-vfp-6r.d | 15 ++++ ld/testsuite/ld-arm/attr-merge-vfpv3xd.s | 2 + .../ld-arm/attr-merge-wchar-00-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-00.d | 1 + .../ld-arm/attr-merge-wchar-02-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-02.d | 1 + .../ld-arm/attr-merge-wchar-04-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-04.d | 1 + .../ld-arm/attr-merge-wchar-20-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-20.d | 1 + .../ld-arm/attr-merge-wchar-22-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-22.d | 1 + .../ld-arm/attr-merge-wchar-24-nowarn.d | 1 + .../ld-arm/attr-merge-wchar-40-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-40.d | 1 + .../ld-arm/attr-merge-wchar-42-nowarn.d | 1 + .../ld-arm/attr-merge-wchar-44-nowarn.d | 1 + ld/testsuite/ld-arm/attr-merge-wchar-44.d | 1 + ld/testsuite/ld-arm/attr-merge.attr | 1 + opcodes/ChangeLog | 6 ++ opcodes/arm-dis.c | 11 ++- 121 files changed, 359 insertions(+), 13 deletions(-) create mode 100644 ld/testsuite/ld-arm/attr-merge-vfp-6.d create mode 100644 ld/testsuite/ld-arm/attr-merge-vfp-6r.d create mode 100644 ld/testsuite/ld-arm/attr-merge-vfpv3xd.s diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5cfcc878c1..cbfe6afe9f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-05-11 Jie Zhang + + * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge + Tag_ABI_HardFP_use correctly. + 2010-05-11 Alan Modra * coffcode.h (coff_write_object_contents): Enclose all occurrences diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 18fddc68cc..df259774e0 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 1ab09e8a8b..0ec4f604ee 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,12 @@ +2010-05-11 Andrew Stubbs + + * config/tc-arm.c (aeabi_set_public_attributes): Set Tag_DIV_use. + +2010-05-11 Jie Zhang + + * 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 * Makefile.in: Regenerate with automake 1.11.1. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index a50ac1d6c6..8c9b33b1b8 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 bed67b51bc..c267d2c375 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,83 @@ +2010-05-11 Andrew Stubbs + + * 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 + + * gas/arm/attr-mfpu-vfpxd.d: New test. + +2010-05-11 Matthew Gretton-Dann + + * gas/arm/thumb32.d: Fix expected disassembly of ldmia + instruction. + 2010-05-05 Nathan Sidwell * 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 0eeab8ce01..4e884ef6c4 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 4439180dfe..93d5bf636f 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 4867087637..8c09564f70 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 352e38f1f7..0ed663a45e 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 956f6fd304..862ec74d14 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 67ba746148..6db9d34ed0 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 e3b606c1f7..aea9cf7ef5 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 b3878cdbba..a7df5a2d41 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 c0c3b92bd4..649d02c1fe 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 c2a5d98a1d..0ac758ffbb 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 2b29db5f85..260e6a696c 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 b1966019cc..dea944bfcd 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 2ed81c9603..c21d80b50c 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 23e132468e..1270fd4271 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 25699959cb..2601545819 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 780a9f98a9..3b4b636cb7 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 4f3a75f013..67a773070f 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 e78ca3fe7e..e4d75c2012 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 ad79347398..36ac3c8c77 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 f509d5faea..a8561e1233 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 d8b37ec8cd..627986c251 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 4ff70574b0..321ecf2af7 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 43db36b19e..db2fe9aa63 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 d0074f13a6..ac2aa238f6 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 59937376c3..f3eff4dd5a 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 0b2ab0e23a..2a41110628 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 e360f1e7b6..5021d23b2c 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 4b80a4dae2..92e6d454ae 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 da687a75f0..3a6fb3b516 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 8ca9e7d6d5..57e021e1fa 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 055b3cfcad..6ce60ef70c 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 ccc496164a..b647147382 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 be46d22153..69c3ef80cc 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 5c80a6d86c..7b1761766a 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 4e8f321140..86c8fe73d6 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 95ea725dd0..b6db97db98 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 19b001b926..efc2cd534e 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 f25aebe212..ed065e7db8 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 4b8fce6bdf..f2de9befe2 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 5e14e3f69c..5f1ca3032b 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 425e44df1d..da56a7d601 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 339daf08b4..6399fff4dd 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 5b94ac5115..1a4b9e701c 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 416bb5bd0b..87283b3731 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 a34cc6f82b..bfcfb4afcc 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 c9174549e9..a578f750e2 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 afbbc6ce2e..994d4b69ca 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 3866572b28..6f401bfbc3 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 1d7d33b801..1dd33a5881 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 d46115bc35..abe315afbd 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 d0524c29ae..462bc139b9 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 bab19b607d..8d9a894241 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 331b81a180..9c66044e80 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 6f89e6abe0..bc44861f21 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 37af075817..6f16f12b99 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 f02d2cdb54..5c0964c369 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 57f5df7eb2..516b8b6e93 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 678eb9eeb6..b259b8207b 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 36d9914bde..88d9ca7382 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 b6cf496d7d..9b22499af7 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 967e912a54..3ec64bd3d7 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 fd92773a6a..4d2726f0b1 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 735860e1c0..9a1a9f5547 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 83f9f68bff..99ecd7ba48 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 54c5e37bb1..9423392ffa 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 cfa11b9d7f..425f0959ff 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 e3e3982d41..a8762ff29b 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 d04ef6b890..530b86bc23 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 565a6242a9..bafd3bb531 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,54 @@ +2010-05-11 Andrew Stubbs + + * 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 + + * 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 * 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 6180393f0f..c23da5498e 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 578333b263..e34111b9d7 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 03031634b0..9d9ae18485 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 047890a04d..6aa8da9024 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 789fcf1b95..bc7a0c1a4e 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 73d65907e9..681f661c7b 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 75fd063117..c8fc7ecffe 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 9d3e97100b..f016708d9f 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 e996c93745..02d2705995 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 e996c93745..02d2705995 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 f69f1e76c2..b39634fe23 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 ac7679c815..4f9c90548e 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 851b2afc74..5755803a80 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 49141967f9..d950b3ec24 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 1d08bff060..c210a06d01 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 8625735176..99fc8e47fa 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 d7a15d7bb6..42bfe99513 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 6444bd00a3..3161e1196d 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 1d36983304..9c6367f49e 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 ee89384a28..9853879acd 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 d06bd2732c..24df972992 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 c18d672d19..469fc9ba3f 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 327e0c384f..c84e50800c 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 cd55a86b74..dc0c6ee816 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 505c31b36c..5e1d23af29 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 0000000000..ca89181439 --- /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 0000000000..f533632253 --- /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 0000000000..295ca176f9 --- /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 8a01f2d210..88e5d2519e 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 4242822c8d..73df821fbb 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 f3935169d3..f55bf52a22 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 f662120c56..500b6a9fac 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 16cc469683..c1d4efd086 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 41413b9d6b..cd119803e2 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 c0b12488a5..b60e458e7c 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 b81fb15885..96738b1d19 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 e9a1e944e4..22539de497 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 bf756606de..c0e67dcaf8 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 0c9b33e574..e7f2566388 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 54f0c54a44..efeafccd84 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 46be48c223..39cb58a502 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 cc72d3e4da..b989f35451 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 35eb756e1c..988dd6ebd7 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 c0fba85666..acda7e7bac 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 578333b263..f07930e2b6 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 abc36cb352..feea135337 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2010-05-11 Matthew Gretton-Dann + + * 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 * Makefile.in: Regenerate with automake 1.11.1. diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 1d53128dc9..c5b00da0ec 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 " if conditional %I print IT instruction suffix and operands + %W print Thumb Writeback indicator for LDMIA %r print bitfield as an ARM register %d print bitfield as a decimal %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. */ { -- 2.34.1