diff options
| author | Benno Rice <benno@FreeBSD.org> | 2002-02-24 23:31:49 +0000 |
|---|---|---|
| committer | Benno Rice <benno@FreeBSD.org> | 2002-02-24 23:31:49 +0000 |
| commit | dfc02c301daaa4aed82adbf52e55ca925e5b0807 (patch) | |
| tree | 7493c47d70bfd8b78cf1aca907bed311cd26ff06 | |
| parent | 0077e8223beb2997f9d07dd9e1553a8cad3b47c1 (diff) | |
Notes
| -rw-r--r-- | sys/powerpc/include/atomic.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/powerpc/include/atomic.h b/sys/powerpc/include/atomic.h index 218e973c5156..194b6c1183eb 100644 --- a/sys/powerpc/include/atomic.h +++ b/sys/powerpc/include/atomic.h @@ -345,7 +345,10 @@ atomic_cmpset_32(volatile u_int32_t* p, u_int32_t cmpval, u_int32_t newval) "bne- 1b\n\t" /* spin if failed */ "eieio\n" /* memory barrier */ "sync\n" + "b 3f\n\t" /* we've succeeded */ "2:\t\n" + "xor %0,%0,%0\t\n" /* failure, so return 0 */ + "3:\t\n" : "=&r" (ret) : "r" (cmpval), "r" (newval), "r" (p) : "memory"); |
