Lines Matching refs:old
50 op_type old; \
53 op_string " %[old],%[val],%[ptr]\n" \
55 : [old] "=d" (old), [ptr] "+QS" (*ptr) \
57 return old; \
101 int old, new; \
104 "0: lr %[new],%[old]\n" \
106 " cs %[old],%[new],%[ptr]\n" \
108 : [old] "=d" (old), [new] "=&d" (new), [ptr] "+Q" (*ptr)\
110 return old; \
127 long old, new; \
130 "0: lgr %[new],%[old]\n" \
132 " csg %[old],%[new],%[ptr]\n" \
134 : [old] "=d" (old), [new] "=&d" (new), [ptr] "+QS" (*ptr)\
136 return old; \
157 static inline int __atomic_cmpxchg(int *ptr, int old, int new)
160 " cs %[old],%[new],%[ptr]"
161 : [old] "+d" (old), [ptr] "+Q" (*ptr)
164 return old;
167 static inline bool __atomic_cmpxchg_bool(int *ptr, int old, int new)
169 int old_expected = old;
172 " cs %[old],%[new],%[ptr]"
173 : [old] "+d" (old), [ptr] "+Q" (*ptr)
176 return old == old_expected;
179 static inline long __atomic64_cmpxchg(long *ptr, long old, long new)
182 " csg %[old],%[new],%[ptr]"
183 : [old] "+d" (old), [ptr] "+QS" (*ptr)
186 return old;
189 static inline bool __atomic64_cmpxchg_bool(long *ptr, long old, long new)
191 long old_expected = old;
194 " csg %[old],%[new],%[ptr]"
195 : [old] "+d" (old), [ptr] "+QS" (*ptr)
198 return old == old_expected;