llvm-6502/lib
Robin Morisset 30486fa3de [ARM, Fix] Fix emitLeading/TrailingFence on old ARM processors
Summary:
I had only tested this code for ARMv7 and ARMv8. This patch adds several
fallback paths if the processor does not support dmb ish:
- dmb sy if a cortex-M with support for dmb
- mcr p15, #0, r0, c7, c10, #5 for ARMv6 (special instruction equivalent to a DMB)
These fallback paths were chosen based on the code for fence seq_cst.

Thanks to luqmana for having noticed this bug.

Test Plan: Added more cases to atomic-load-store.ll + make check-all

Reviewers: jfb, t.p.northover, luqmana

Subscribers: aemerson, llvm-commits

Differential Revision: http://reviews.llvm.org/D5304

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217965 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-17 17:41:16 +00:00
..
Analysis InstSimplify: Don't allow (x srem y) urem y -> x srem y 2014-09-17 04:16:35 +00:00
AsmParser
Bitcode
CodeGen [X86] Use the generic AtomicExpandPass instead of X86AtomicExpandPass 2014-09-17 00:06:58 +00:00
DebugInfo
ExecutionEngine Add a missing return to operator= 2014-09-16 17:39:46 +00:00
IR Add DIBuilder functions to build RAUWable DIVariables and DIFunctions. 2014-09-17 09:28:34 +00:00
IRReader
LineEditor
Linker
LTO
MC Add and update reset() and doInitialization() methods to MC* and passes. 2014-09-17 09:25:36 +00:00
Object [Object] keep trailing '\0' out of StringRef when parsing mach-o bindings 2014-09-17 01:51:43 +00:00
Option
ProfileData LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
Support LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
TableGen
Target [ARM, Fix] Fix emitLeading/TrailingFence on old ARM processors 2014-09-17 17:41:16 +00:00
Transforms [IndVarSimplify] Partially revert r217953 to see if this fixes the bots. 2014-09-17 16:35:09 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile