This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold][aarch64]: Erratum 843419 optimized fix

> gold/ChangeLog
> 2015-07-15 Han Shen <>
>         Optimize erratum 843419 fix.
>         gold/ChangeLog: * (AArch64_insn_utilities::is_adr): New
>         method.  (AArch64_insn_utilities::aarch64_adr_encode_imm): New method.
>         (AArch64_insn_utilities::aarch64_adrp_decode_imm): New method.
>         (E843419_stub): New sub-class of Erratum_stub.
>         (AArch64_relobj::try_fix_erratum_843419_optimized): New method.
>         (AArch64_relobj::section_needs_reloc_stub_scanning): Try optimized fix.
>         (AArch64_relobj::create_erratum_stub): Add 1 argument.
>         (Target_aarch64::scan_erratum_843419_span): Pass in adrp insn offset.

+// This is an optimization for 843419. This erratum requires the sequence begin
+// with 'adrp', when final value calculated by adrp fits in adr, we can just
+// replace 'adrp' with 'adr', so we save 2 jumps per occurrence.
(Note, however,
+// in this case, we do not delete the erratum stub (too late to do so), it is
+// merely generated without ever been called.)


This is OK with that fix. Thanks!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]