Lines Matching refs:ptr
37 int32_t android_atomic_acquire_load(volatile const int32_t *ptr)
39 int32_t value = *ptr;
45 int32_t android_atomic_release_load(volatile const int32_t *ptr)
48 return *ptr;
52 void android_atomic_acquire_store(int32_t value, volatile int32_t *ptr)
54 *ptr = value;
59 void android_atomic_release_store(int32_t value, volatile int32_t *ptr)
62 *ptr = value;
66 int android_atomic_cas(int32_t old_value, int32_t new_value, volatile int32_t *ptr)
71 " ll %[prev], (%[ptr])\n"
75 " sc %[status], (%[ptr])\n"
78 : [ptr] "r" (ptr), [old] "r" (old_value), [new_value] "r" (new_value)
87 volatile int32_t *ptr)
89 int status = android_atomic_cas(old_value, new_value, ptr);
97 volatile int32_t *ptr)
100 return android_atomic_cas(old_value, new_value, ptr);
104 int32_t android_atomic_add(int32_t increment, volatile int32_t *ptr)
110 " ll %[prev], (%[ptr])\n"
112 " sc %[status], (%[ptr])\n"
114 : [ptr] "r" (ptr), [inc] "Ir" (increment)
133 android_atomic_and(int32_t value, volatile int32_t *ptr)
139 " ll %[prev], (%[ptr])\n"
141 " sc %[status], (%[ptr])\n"
143 : [ptr] "r" (ptr), [value] "Ir" (value)
150 android_atomic_or(int32_t value, volatile int32_t *ptr)
156 " ll %[prev], (%[ptr])\n"
158 " sc %[status], (%[ptr])\n"
160 : [ptr] "r" (ptr), [value] "Ir" (value)