diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d30bd2e701..85d5389abf 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2013-03-21 Nick Clifton + + PR sim/15286 + * elf32-arm.c (bfd_arm_get_mach_from_attributes): Identify XScale, + iWMMXt and iWMMXt2 processors from attributes. + 2013-03-20 Alan Modra * elflink.c (_bfd_elf_make_dynamic_reloc_section): Override diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index aba1814f85..78c2d1d7b7 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -10958,6 +10958,20 @@ bfd_arm_get_mach_from_attributes (bfd * abfd) if (strcmp (name, "IWMMXT") == 0) return bfd_mach_arm_iWMMXt; + + if (strcmp (name, "XSCALE") == 0) + { + int wmmx; + + BFD_ASSERT (Tag_WMMX_arch < NUM_KNOWN_OBJ_ATTRIBUTES); + wmmx = elf_known_obj_attributes (abfd) [OBJ_ATTR_PROC][Tag_WMMX_arch].i; + switch (wmmx) + { + case 1: return bfd_mach_arm_iWMMXt; + case 2: return bfd_mach_arm_iWMMXt2; + default: return bfd_mach_arm_XScale; + } + } } return bfd_mach_arm_5TE;