[RFC PATCH, binutils, ARM 1/11, ping] Refactor Cortex-A8 erratum workaround in preparation

Nick Clifton nickc@redhat.com
Wed Mar 30 13:58:00 GMT 2016


Hi Thomas,

> Ping?

oops - sorry.

>>> *** bfd/ChangeLog ***
>>>
>>> 2015-08-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
>>>
>>>          * elf32-arm.c (struct elf32_arm_stub_hash_entry): Delete
>>>
>>> target_addend
>>>
>>>          field and add source_value.
>>>          (struct a8_erratum_fix): Delete addend field and add
>>>          target_offset.
>>>          (stub_hash_newfunc): Initialize source_value field amd remove
>>>          initialization for target_addend.
>>>
>>>          (arm_build_one_stub): Stop special casing Thumb relocations:
>>> promote
>>>
>>>          the else to being always executed, moving the
>>>          arm_stub_a8_veneer_b_cond specific code in it.  Remove
>>>          stub_entry->target_addend from points_to computation.
>>>          (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the
>>>
>>> offset
>>>
>>>          to target symbol from start of section rather than the offset from
>>>          the
>>>          stub address.
>>>          (elf32_arm_size_stubs): Set stub_entry's source_value and
>>>
>>> target_value
>>>
>>>          fields from struct a8_erratum_fix's offset and target_offset
>>>          respectively.
>>>          (make_branch_to_a8_stub): Rename target variable to loc.
>>>
>>> Compute
>>>
>>>          veneered_insn_loc and loc using stub_entry's source_value.

Approved - please apply.

Cheers
  Nick



More information about the Binutils mailing list