30 #ifndef V8_ATOMICOPS_INTERNALS_MIPS_GCC_H_
31 #define V8_ATOMICOPS_INTERNALS_MIPS_GCC_H_
33 #define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory")
52 __asm__ __volatile__(
".set push\n"
63 :
"=&r" (prev),
"=m" (*ptr),
"=&r" (tmp)
64 :
"Ir" (old_value),
"r" (new_value),
"m" (*ptr)
74 __asm__ __volatile__(
".set push\n"
83 :
"=&r" (temp),
"=&r" (old),
"=m" (*ptr)
84 :
"r" (new_value),
"m" (*ptr)
96 __asm__ __volatile__(
".set push\n"
105 :
"=&r" (temp),
"=&r" (temp2),
"=m" (*ptr)
106 :
"Ir" (increment),
"m" (*ptr)
149 __asm__ __volatile__(
"sync" : : :
"memory");
179 #undef ATOMICOPS_COMPILER_BARRIER
181 #endif // V8_ATOMICOPS_INTERNALS_MIPS_GCC_H_
void Acquire_Store(volatile Atomic32 *ptr, Atomic32 value)
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
#define ATOMICOPS_COMPILER_BARRIER()
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)