2016-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>

bfd/
	* elf32-arm.c (cmse_entry_fct_p): Store instruction encoding in an
	array of bytes and use bfd_get_16 to interpret its encoding according
	to endianness of target.
This commit is contained in:
Thomas Preud'homme 2016-09-01 09:35:57 +01:00
parent cd285db582
commit 424844864a
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2016-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
* elf32-arm.c (cmse_entry_fct_p): Store instruction encoding in an
array of bytes and use bfd_get_16 to interpret its encoding according
to endianness of target.
2016-09-01 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (synthetic_opd): New static var.

View File

@ -5775,6 +5775,7 @@ cmse_scan (bfd *input_bfd, struct elf32_arm_link_hash_table *htab,
static bfd_boolean
cmse_entry_fct_p (struct elf32_arm_link_hash_entry *hash)
{
bfd_byte contents[4];
uint32_t first_insn;
asection *section;
file_ptr offset;
@ -5791,11 +5792,13 @@ cmse_entry_fct_p (struct elf32_arm_link_hash_entry *hash)
section = hash->root.root.u.def.section;
abfd = section->owner;
offset = hash->root.root.u.def.value - section->vma;
if (!bfd_get_section_contents (abfd, section, &first_insn, offset,
sizeof (first_insn)))
if (!bfd_get_section_contents (abfd, section, contents, offset,
sizeof (contents)))
return FALSE;
/* Start by SG instruction. */
first_insn = bfd_get_32 (abfd, contents);
/* Starts by SG instruction. */
return first_insn == 0xe97fe97f;
}