|
@@ -18,12 +18,12 @@ __xchg_u32(volatile void *p, unsigned long val)
|
|
|
unsigned long prev;
|
|
|
|
|
|
__asm__ __volatile__(
|
|
|
- PPC_RELEASE_BARRIER
|
|
|
+ PPC_ATOMIC_ENTRY_BARRIER
|
|
|
"1: lwarx %0,0,%2 \n"
|
|
|
PPC405_ERR77(0,%2)
|
|
|
" stwcx. %3,0,%2 \n\
|
|
|
bne- 1b"
|
|
|
- PPC_ACQUIRE_BARRIER
|
|
|
+ PPC_ATOMIC_EXIT_BARRIER
|
|
|
: "=&r" (prev), "+m" (*(volatile unsigned int *)p)
|
|
|
: "r" (p), "r" (val)
|
|
|
: "cc", "memory");
|
|
@@ -61,12 +61,12 @@ __xchg_u64(volatile void *p, unsigned long val)
|
|
|
unsigned long prev;
|
|
|
|
|
|
__asm__ __volatile__(
|
|
|
- PPC_RELEASE_BARRIER
|
|
|
+ PPC_ATOMIC_ENTRY_BARRIER
|
|
|
"1: ldarx %0,0,%2 \n"
|
|
|
PPC405_ERR77(0,%2)
|
|
|
" stdcx. %3,0,%2 \n\
|
|
|
bne- 1b"
|
|
|
- PPC_ACQUIRE_BARRIER
|
|
|
+ PPC_ATOMIC_EXIT_BARRIER
|
|
|
: "=&r" (prev), "+m" (*(volatile unsigned long *)p)
|
|
|
: "r" (p), "r" (val)
|
|
|
: "cc", "memory");
|
|
@@ -151,14 +151,14 @@ __cmpxchg_u32(volatile unsigned int *p, unsigned long old, unsigned long new)
|
|
|
unsigned int prev;
|
|
|
|
|
|
__asm__ __volatile__ (
|
|
|
- PPC_RELEASE_BARRIER
|
|
|
+ PPC_ATOMIC_ENTRY_BARRIER
|
|
|
"1: lwarx %0,0,%2 # __cmpxchg_u32\n\
|
|
|
cmpw 0,%0,%3\n\
|
|
|
bne- 2f\n"
|
|
|
PPC405_ERR77(0,%2)
|
|
|
" stwcx. %4,0,%2\n\
|
|
|
bne- 1b"
|
|
|
- PPC_ACQUIRE_BARRIER
|
|
|
+ PPC_ATOMIC_EXIT_BARRIER
|
|
|
"\n\
|
|
|
2:"
|
|
|
: "=&r" (prev), "+m" (*p)
|
|
@@ -197,13 +197,13 @@ __cmpxchg_u64(volatile unsigned long *p, unsigned long old, unsigned long new)
|
|
|
unsigned long prev;
|
|
|
|
|
|
__asm__ __volatile__ (
|
|
|
- PPC_RELEASE_BARRIER
|
|
|
+ PPC_ATOMIC_ENTRY_BARRIER
|
|
|
"1: ldarx %0,0,%2 # __cmpxchg_u64\n\
|
|
|
cmpd 0,%0,%3\n\
|
|
|
bne- 2f\n\
|
|
|
stdcx. %4,0,%2\n\
|
|
|
bne- 1b"
|
|
|
- PPC_ACQUIRE_BARRIER
|
|
|
+ PPC_ATOMIC_EXIT_BARRIER
|
|
|
"\n\
|
|
|
2:"
|
|
|
: "=&r" (prev), "+m" (*p)
|