aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitWriter.cpp
diff options
context:
space:
mode:
authorBradley Smith <bradley.smith@arm.com>2014-10-13 10:12:35 +0000
committerBradley Smith <bradley.smith@arm.com>2014-10-13 10:12:35 +0000
commitf2a801d8ac8c83f21ea50e1b23fb3f3496ab9ff2 (patch)
treea5c2418fd2b16b4c43ffa7c4c136c1ebce671e80 /llvm/lib/Bitcode/Writer/BitWriter.cpp
parent46853b55fa6a0feb7c4062cab0665d488f1dba28 (diff)
downloadllvm-f2a801d8ac8c83f21ea50e1b23fb3f3496ab9ff2.zip
llvm-f2a801d8ac8c83f21ea50e1b23fb3f3496ab9ff2.tar.gz
llvm-f2a801d8ac8c83f21ea50e1b23fb3f3496ab9ff2.tar.bz2
[AArch64] Add workaround for Cortex-A53 erratum (835769)
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. The safest work-around for this issue is to make the compiler avoid emitting multiply-accumulate instructions immediately after memory instructions and the simplest way to do this is to insert a NOP. This patch implements such work-around in the backend, enabled via the option -aarch64-fix-cortex-a53-835769. The work-around code generation is not enabled by default. llvm-svn: 219603
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitWriter.cpp')
0 files changed, 0 insertions, 0 deletions