diff options
Diffstat (limited to 'deps/v8/src/base/atomicops_internals_std.h')
-rw-r--r-- | deps/v8/src/base/atomicops_internals_std.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/deps/v8/src/base/atomicops_internals_std.h b/deps/v8/src/base/atomicops_internals_std.h index 4ce7b461e0..6c3d842449 100644 --- a/deps/v8/src/base/atomicops_internals_std.h +++ b/deps/v8/src/base/atomicops_internals_std.h @@ -28,6 +28,14 @@ inline void SeqCst_MemoryFence() { std::atomic_thread_fence(std::memory_order_seq_cst); } +inline Atomic16 Relaxed_CompareAndSwap(volatile Atomic16* ptr, + Atomic16 old_value, Atomic16 new_value) { + std::atomic_compare_exchange_strong_explicit( + helper::to_std_atomic(ptr), &old_value, new_value, + std::memory_order_relaxed, std::memory_order_relaxed); + return old_value; +} + inline Atomic32 Relaxed_CompareAndSwap(volatile Atomic32* ptr, Atomic32 old_value, Atomic32 new_value) { std::atomic_compare_exchange_strong_explicit( @@ -86,6 +94,11 @@ inline void Relaxed_Store(volatile Atomic8* ptr, Atomic8 value) { std::memory_order_relaxed); } +inline void Relaxed_Store(volatile Atomic16* ptr, Atomic16 value) { + std::atomic_store_explicit(helper::to_std_atomic(ptr), value, + std::memory_order_relaxed); +} + inline void Relaxed_Store(volatile Atomic32* ptr, Atomic32 value) { std::atomic_store_explicit(helper::to_std_atomic(ptr), value, std::memory_order_relaxed); @@ -101,6 +114,11 @@ inline Atomic8 Relaxed_Load(volatile const Atomic8* ptr) { std::memory_order_relaxed); } +inline Atomic16 Relaxed_Load(volatile const Atomic16* ptr) { + return std::atomic_load_explicit(helper::to_std_atomic_const(ptr), + std::memory_order_relaxed); +} + inline Atomic32 Relaxed_Load(volatile const Atomic32* ptr) { return std::atomic_load_explicit(helper::to_std_atomic_const(ptr), std::memory_order_relaxed); |