Lines Matching +full:2 +full:v
32 #define arch_atomic_read(v) READ_ONCE((v)->counter) argument
33 #define arch_atomic_set(v, i) WRITE_ONCE((v)->counter, (i)) argument
36 static inline void arch_atomic_##op(int i, atomic_t *v) \
40 : "+ZB" (v->counter) \
46 static inline int arch_atomic_##op##_return_relaxed(int i, atomic_t *v) \
51 "am"#asm_op"_db.w" " %1, %2, %0 \n" \
52 : "+ZB" (v->counter), "=&r" (result) \
60 static inline int arch_atomic_fetch_##op##_relaxed(int i, atomic_t *v) \
65 "am"#asm_op"_db.w" " %1, %2, %0 \n" \
66 : "+ZB" (v->counter), "=&r" (result) \
105 static inline int arch_atomic_fetch_add_unless(atomic_t *v, int a, int u) in ATOMIC_OPS()
115 " b 2f\n" in ATOMIC_OPS()
118 "2:\n" in ATOMIC_OPS()
120 [c]"=ZB" (v->counter) in ATOMIC_OPS()
128 static inline int arch_atomic_sub_if_positive(int i, atomic_t *v) in arch_atomic_sub_if_positive() argument
135 "1: ll.w %1, %2 # atomic_sub_if_positive\n" in arch_atomic_sub_if_positive()
138 " bltz %0, 2f \n" in arch_atomic_sub_if_positive()
139 " sc.w %1, %2 \n" in arch_atomic_sub_if_positive()
141 "2: \n" in arch_atomic_sub_if_positive()
143 : "=&r" (result), "=&r" (temp), "+ZC" (v->counter) in arch_atomic_sub_if_positive()
147 "1: ll.w %1, %2 # atomic_sub_if_positive\n" in arch_atomic_sub_if_positive()
150 " bltz %0, 2f \n" in arch_atomic_sub_if_positive()
151 " sc.w %1, %2 \n" in arch_atomic_sub_if_positive()
153 "2: \n" in arch_atomic_sub_if_positive()
155 : "=&r" (result), "=&r" (temp), "+ZC" (v->counter) in arch_atomic_sub_if_positive()
162 #define arch_atomic_dec_if_positive(v) arch_atomic_sub_if_positive(1, v) argument
168 #define arch_atomic64_read(v) READ_ONCE((v)->counter) argument
169 #define arch_atomic64_set(v, i) WRITE_ONCE((v)->counter, (i)) argument
172 static inline void arch_atomic64_##op(long i, atomic64_t *v) \
176 : "+ZB" (v->counter) \
182 static inline long arch_atomic64_##op##_return_relaxed(long i, atomic64_t *v) \
186 "am"#asm_op"_db.d " " %1, %2, %0 \n" \
187 : "+ZB" (v->counter), "=&r" (result) \
195 static inline long arch_atomic64_fetch_##op##_relaxed(long i, atomic64_t *v) \
200 "am"#asm_op"_db.d " " %1, %2, %0 \n" \
201 : "+ZB" (v->counter), "=&r" (result) \
240 static inline long arch_atomic64_fetch_add_unless(atomic64_t *v, long a, long u) in ATOMIC64_OPS()
250 " b 2f\n" in ATOMIC64_OPS()
253 "2:\n" in ATOMIC64_OPS()
255 [c] "=ZB" (v->counter) in ATOMIC64_OPS()
263 static inline long arch_atomic64_sub_if_positive(long i, atomic64_t *v) in arch_atomic64_sub_if_positive() argument
270 "1: ll.d %1, %2 # atomic64_sub_if_positive \n" in arch_atomic64_sub_if_positive()
273 " bltz %0, 2f \n" in arch_atomic64_sub_if_positive()
274 " sc.d %1, %2 \n" in arch_atomic64_sub_if_positive()
276 "2: \n" in arch_atomic64_sub_if_positive()
278 : "=&r" (result), "=&r" (temp), "+ZC" (v->counter) in arch_atomic64_sub_if_positive()
282 "1: ll.d %1, %2 # atomic64_sub_if_positive \n" in arch_atomic64_sub_if_positive()
285 " bltz %0, 2f \n" in arch_atomic64_sub_if_positive()
286 " sc.d %1, %2 \n" in arch_atomic64_sub_if_positive()
288 "2: \n" in arch_atomic64_sub_if_positive()
290 : "=&r" (result), "=&r" (temp), "+ZC" (v->counter) in arch_atomic64_sub_if_positive()
297 #define arch_atomic64_dec_if_positive(v) arch_atomic64_sub_if_positive(1, v) argument