Lines Matching refs:addr

54                                                volatile int64_t* addr)
62 : "=&r" (prev), "=&r" (status), "+m"(*addr)
63 : "r" (addr), "r" (newvalue)
69 int64_t dvmQuasiAtomicSwap64(int64_t newvalue, volatile int64_t* addr)
71 return dvmQuasiAtomicSwap64Body(newvalue, addr);
74 int64_t dvmQuasiAtomicSwap64Sync(int64_t newvalue, volatile int64_t* addr)
78 prev = dvmQuasiAtomicSwap64Body(newvalue, addr);
84 volatile int64_t* addr)
95 : "=&r" (prev), "=&r" (status), "+m"(*addr)
96 : "r" (addr), "Ir" (oldvalue), "r" (newvalue)
102 int64_t dvmQuasiAtomicRead64(volatile const int64_t* addr)
108 : "r" (addr));
120 volatile int64_t* addr)
123 (int64_t*)addr) == 0;
128 volatile int64_t* addr)
132 oldValue = *addr;
133 } while (dvmQuasiAtomicCas64(oldValue, value, addr));
137 int64_t dvmQuasiAtomicSwap64(int64_t value, volatile int64_t* addr)
139 return dvmQuasiAtomicSwap64Body(value, addr);
142 int64_t dvmQuasiAtomicSwap64Sync(int64_t value, volatile int64_t* addr)
146 oldValue = dvmQuasiAtomicSwap64Body(value, addr);
152 int64_t dvmQuasiAtomicRead64(volatile const int64_t* addr)
154 return OSAtomicAdd64Barrier(0, addr);
192 static inline pthread_mutex_t* GetSwapLock(const volatile int64_t* addr) {
193 return gSwapLocks[((unsigned)(void*)(addr) >> 3U) % kSwapLockCount];
196 int64_t dvmQuasiAtomicSwap64(int64_t value, volatile int64_t* addr)
199 pthread_mutex_t* lock = GetSwapLock(addr);
203 oldValue = *addr;
204 *addr = value;
211 int64_t dvmQuasiAtomicSwap64Sync(int64_t value, volatile int64_t* addr)
213 return dvmQuasiAtomicSwap64(value, addr);
217 volatile int64_t* addr)
220 pthread_mutex_t* lock = GetSwapLock(addr);
224 if (*addr == oldvalue) {
225 *addr = newvalue;
234 int64_t dvmQuasiAtomicRead64(volatile const int64_t* addr)
237 pthread_mutex_t* lock = GetSwapLock(addr);
240 result = *addr;