48 #ifndef V8_ATOMICOPS_H_
49 #define V8_ATOMICOPS_H_
51 #include "../include/v8.h"
58 #ifdef V8_HOST_ARCH_64_BIT
61 #if defined(__APPLE__)
64 typedef int64_t Atomic64;
66 typedef intptr_t Atomic64;
72 #if defined(__OpenBSD__) && defined(__i386__)
129 #ifdef V8_HOST_ARCH_64_BIT
149 #endif // V8_HOST_ARCH_64_BIT
154 #if defined(_MSC_VER) && \
155 (defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_X64))
157 #elif defined(__APPLE__) && \
158 (defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_X64))
160 #elif defined(__GNUC__) && \
161 (defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_X64))
163 #elif defined(__GNUC__) && defined(V8_HOST_ARCH_ARM)
165 #elif defined(__GNUC__) && defined(V8_HOST_ARCH_MIPS)
168 #error "Atomic operations are not supported on your platform"
171 #endif // V8_ATOMICOPS_H_
void Acquire_Store(volatile Atomic32 *ptr, Atomic32 value)
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Atomic32 Release_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
void NoBarrier_Store(volatile Atomic32 *ptr, Atomic32 value)
Atomic32 NoBarrier_AtomicExchange(volatile Atomic32 *ptr, Atomic32 new_value)
Atomic32 Release_Load(volatile const Atomic32 *ptr)
Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32 *ptr, Atomic32 increment)
void Release_Store(volatile Atomic32 *ptr, Atomic32 value)
Atomic32 Barrier_AtomicIncrement(volatile Atomic32 *ptr, Atomic32 increment)
Atomic32 NoBarrier_Load(volatile const Atomic32 *ptr)
Atomic32 Acquire_Load(volatile const Atomic32 *ptr)
Atomic32 Acquire_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)