aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2013-03-21 10:34:11 +0000
committerNick Clifton <nickc@redhat.com>2013-03-21 10:34:11 +0000
commit088ca6c1e30939f069331a25dabd49d99f06fd8e (patch)
tree7d6d1f3aa95b408a2f9c7bf379d9097738e4e18b
parentebacd51e16144e7e88e8c010b571d94a9d7ea232 (diff)
downloadfsf-binutils-gdb-088ca6c1e30939f069331a25dabd49d99f06fd8e.zip
fsf-binutils-gdb-088ca6c1e30939f069331a25dabd49d99f06fd8e.tar.gz
fsf-binutils-gdb-088ca6c1e30939f069331a25dabd49d99f06fd8e.tar.bz2
PR sim/15286
* elf32-arm.c (bfd_arm_get_mach_from_attributes): Identify XScale, iWMMXt and iWMMXt2 processors from attributes.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-arm.c14
2 files changed, 20 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d30bd2e..85d5389 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2013-03-21 Nick Clifton <nickc@redhat.com>
+
+ 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 <amodra@gmail.com>
* elflink.c (_bfd_elf_make_dynamic_reloc_section): Override
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index aba1814..78c2d1d 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;