30 #ifndef V8_BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
31 #define V8_BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
50 __asm__ __volatile__(
".set push\n"
61 :
"=&r" (prev),
"=m" (*ptr),
"=&r" (tmp)
62 :
"Ir" (old_value),
"r" (new_value),
"m" (*ptr)
72 __asm__ __volatile__(
".set push\n"
81 :
"=&r" (temp),
"=&r" (old),
"=m" (*ptr)
82 :
"r" (new_value),
"m" (*ptr)
94 __asm__ __volatile__(
".set push\n"
103 :
"=&r" (temp),
"=&r" (temp2),
"=m" (*ptr)
104 :
"Ir" (increment),
"m" (*ptr)
148 __asm__ __volatile__(
"sync" : : :
"memory");
185 Atomic64 new_value) {
187 __asm__ __volatile__(
".set push\n"
198 :
"=&r" (prev),
"=m" (*ptr),
"=&r" (tmp)
199 :
"Ir" (old_value),
"r" (new_value),
"m" (*ptr)
207 Atomic64 new_value) {
209 __asm__ __volatile__(
".set push\n"
218 :
"=&r" (temp),
"=&r" (old),
"=m" (*ptr)
219 :
"r" (new_value),
"m" (*ptr)
228 Atomic64 increment) {
229 Atomic64 temp, temp2;
231 __asm__ __volatile__(
".set push\n"
240 :
"=&r" (temp),
"=&r" (temp2),
"=m" (*ptr)
241 :
"Ir" (increment),
"m" (*ptr)
248 Atomic64 increment) {
263 Atomic64 new_value) {
271 Atomic64 new_value) {
280 inline void Acquire_Store(
volatile Atomic64* ptr, Atomic64 value) {
285 inline void Release_Store(
volatile Atomic64* ptr, Atomic64 value) {
294 inline Atomic64
Acquire_Load(
volatile const Atomic64* ptr) {
295 Atomic64 value = *ptr;
300 inline Atomic64
Release_Load(
volatile const Atomic64* ptr) {
Atomic32 Release_Load(volatile const Atomic32 *ptr)
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
void Acquire_Store(volatile Atomic32 *ptr, Atomic32 value)
Atomic32 Acquire_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)
void NoBarrier_Store(volatile Atomic8 *ptr, Atomic8 value)
Atomic32 NoBarrier_AtomicExchange(volatile Atomic32 *ptr, Atomic32 new_value)
Atomic32 Release_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Atomic8 NoBarrier_Load(volatile const Atomic8 *ptr)
Atomic32 Acquire_CompareAndSwap(volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Debugger support for the V8 JavaScript engine.