refactor internal atomic.h
[oweals/musl.git] / arch / powerpc / atomic_arch.h
1 #define a_cas a_cas
2 static inline int a_cas(volatile int *p, int t, int s)
3 {
4         __asm__("\n"
5                 "       sync\n"
6                 "1:     lwarx %0, 0, %4\n"
7                 "       cmpw %0, %2\n"
8                 "       bne 1f\n"
9                 "       stwcx. %3, 0, %4\n"
10                 "       bne- 1b\n"
11                 "       isync\n"
12                 "1:     \n"
13                 : "=&r"(t), "+m"(*p) : "r"(t), "r"(s), "r"(p) : "cc", "memory" );
14         return t;
15 }