diff options
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. */ { |