diff options
author | Amara Emerson <amara.emerson@arm.com> | 2013-09-26 12:22:36 +0000 |
---|---|---|
committer | Amara Emerson <amara.emerson@arm.com> | 2013-09-26 12:22:36 +0000 |
commit | 268c743a3ba44ada364938bc5ff9b1be219df54f (patch) | |
tree | b0799bffe0832dde28ca1d63bf033ec1c22101f2 /include/llvm/CodeGen/ISDOpcodes.h | |
parent | 9637da60835a60f8ccd8289d04c60b2dcd4b9b5a (diff) | |
download | external_llvm-268c743a3ba44ada364938bc5ff9b1be219df54f.zip external_llvm-268c743a3ba44ada364938bc5ff9b1be219df54f.tar.gz external_llvm-268c743a3ba44ada364938bc5ff9b1be219df54f.tar.bz2 |
[ARM] Use the load-acquire/store-release instructions optimally in AArch32.
Patch by Artyom Skrobov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191428 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/ISDOpcodes.h')
-rw-r--r-- | include/llvm/CodeGen/ISDOpcodes.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/ISDOpcodes.h b/include/llvm/CodeGen/ISDOpcodes.h index 45bb7e3..3a49dd8 100644 --- a/include/llvm/CodeGen/ISDOpcodes.h +++ b/include/llvm/CodeGen/ISDOpcodes.h @@ -604,11 +604,17 @@ namespace ISD { ATOMIC_STORE, /// Val, OUTCHAIN = ATOMIC_CMP_SWAP(INCHAIN, ptr, cmp, swap) + /// For double-word atomic operations: + /// ValLo, ValHi, OUTCHAIN = ATOMIC_CMP_SWAP(INCHAIN, ptr, cmpLo, cmpHi, + /// swapLo, swapHi) /// This corresponds to the cmpxchg instruction. ATOMIC_CMP_SWAP, /// Val, OUTCHAIN = ATOMIC_SWAP(INCHAIN, ptr, amt) /// Val, OUTCHAIN = ATOMIC_LOAD_[OpName](INCHAIN, ptr, amt) + /// For double-word atomic operations: + /// ValLo, ValHi, OUTCHAIN = ATOMIC_SWAP(INCHAIN, ptr, amtLo, amtHi) + /// ValLo, ValHi, OUTCHAIN = ATOMIC_LOAD_[OpName](INCHAIN, ptr, amtLo, amtHi) /// These correspond to the atomicrmw instruction. ATOMIC_SWAP, ATOMIC_LOAD_ADD, |