This is the mail archive of the binutils@sourceware.org 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: [Patch, AArch64, BFD, LD] [2.24] Cortex-A53 erratum 835769 linker workaround.


On 22 October 2014 15:07, Tejas Belagod <tejas.belagod@arm.com> wrote:
> Hi,
>
> Some early revisions of the Cortex-A53 have an erratum (835769) whereby
> it is possible for a 64-bit multiply-accumulate instruction in AArch64 state
> to generate an incorrect result.  The details are quite complex and hard to
> determine statically, since branches in the code may exist in some
> circumstances, but all cases end with a memory (load, store, or
> prefetch) instruction followed immediately by the multiply-accumulate
> operation.
>
> We employ a linker patching technique, whereby we move the potentially
> affected multiply-accumulate instruction into a patch region and
> replace the original instruction with a branch to the patch.
>
> This patch achieves the linker patch. Also, a patch to turn this on from the
> compiler driver has been submitted independently to the gcc lists.
>
> The fix is disabled by default and can be turned on by the
> --fix-cortex-a53-835769 linker option.
>
> Tested on aarch64-none-linux-gnu (and bootstrap with the option) and built
> and run various large benchmarks with it.
>
> Ok for 2.24?

This should be back ported.  However, with 2.25 imminent I want to
make sure 2.25 gets back ported before/at the same time as 2.24.  I'd
like an explicit OK from Tristan for the back port to 2.25.

Tristan?

Cheers
/Marcus


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