X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=arch%2Fpowerpc%2Fatomic.h;h=f706543a7fac6d682b76f47e720b46540163fbde;hb=559de8f5f06da9022cbba70e22e14a710eb74513;hp=c4ad40cd5d5e098b6242aaa362911f5414e8af32;hpb=1456b7ae6b72a4f2c446243acdde7c951268d4ab;p=musl diff --git a/arch/powerpc/atomic.h b/arch/powerpc/atomic.h index c4ad40cd..f706543a 100644 --- a/arch/powerpc/atomic.h +++ b/arch/powerpc/atomic.h @@ -43,12 +43,6 @@ static inline void *a_cas_p(volatile void *p, void *t, void *s) return (void *)a_cas(p, (int)t, (int)s); } -static inline long a_cas_l(volatile void *p, long t, long s) -{ - return a_cas(p, t, s); -} - - static inline int a_swap(volatile int *x, int v) { int old; @@ -77,11 +71,18 @@ static inline void a_dec(volatile int *x) static inline void a_store(volatile int *p, int x) { - *p=x; + __asm__ __volatile__ ("\n" + " sync\n" + " stw %1, %0\n" + " isync\n" + : "=m"(*p) : "r"(x) : "memory" ); } -static inline void a_spin() +#define a_spin a_barrier + +static inline void a_barrier() { + a_cas(&(int){0}, 0, 0); } static inline void a_crash()