Lines Matching +full:counter +full:- +full:2
5 * version 2. This program is licensed "as is" without any warranty of any
14 /* Atomically perform op with v->counter and i */
22 " l." #op " %0,%0,%2 \n" \
27 : "r"(&v->counter), "r"(i) \
31 /* Atomically perform op with v->counter and i, return the result */
39 " l." #op " %0,%0,%2 \n" \
44 : "r"(&v->counter), "r"(i) \
50 /* Atomically perform op with v->counter and i, return orig v->counter */
57 "1: l.lwa %0,0(%2) \n" \
59 " l.swa 0(%2),%1 \n" \
63 : "r"(&v->counter), "r"(i) \
102 * Atomically add a to v->counter as long as v is not already u. in ATOMIC_OP_RETURN()
103 * Returns the original value at v->counter. in ATOMIC_OP_RETURN()
112 "1: l.lwa %0, 0(%2) \n" in ATOMIC_OP_RETURN()
114 " l.bf 2f \n" in ATOMIC_OP_RETURN()
116 " l.swa 0(%2), %1 \n" in ATOMIC_OP_RETURN()
119 "2: \n" in ATOMIC_OP_RETURN()
121 : "r"(&v->counter), "r"(a), "r"(u) in ATOMIC_OP_RETURN()
128 #define arch_atomic_read(v) READ_ONCE((v)->counter)
129 #define arch_atomic_set(v,i) WRITE_ONCE((v)->counter, (i))