[PATCH 0/5] i386: Optimize for Jump Conditional Code Erratum

H.J. Lu hjl.tools@gmail.com
Tue Dec 3 19:17:00 GMT 2019


On Tue, Dec 3, 2019 at 11:02 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> Microcode update for Jump Conditional Code Erratum may cause performance
> loss for some workloads:
>
> https://www.intel.com/content/www/us/en/support/articles/000055650.html
>
> Here is the set of assembler patches to mitigate performance impact by
> aligning branches within 32-byte boundary.  The impacted instructions
> are:
>
>   a. Conditional jump.
>   b. Fused conditional jump.
>   c. Unconditional jump.
>   d. Call.
>   e. Ret.
>   f. Indirect jump and call.
>
> The new -mbranches-within-32B-boundaries command-line option aligns
> conditional jump, fused conditional jump and unconditional jump within
> 32-byte boundary.
>
> md_cons_worker, which allows a backend to track hard-coded opcodes in
> instruction stream, and md_generic_table_relax_frag, which allows a
> backend to extend relax_frag, are added to implement this new feature.
>
> H.J. Lu (5):
>   gas: Add md_cons_worker
>   gas: Add md_generic_table_relax_frag
>   i386: Align branches within a fixed boundary
>   i386: Add -mbranches-within-32B-boundaries
>   i386: Add tests for -malign-branch-boundary and -malign-branch
>

Please ignore this one.


-- 
H.J.



More information about the Binutils mailing list