svn commit: r223813 -
stable/8/contrib/bind9/lib/isc/sparc64/include/isc
Doug Barton
dougb at FreeBSD.org
Wed Jul 6 00:49:36 UTC 2011
Author: dougb
Date: Wed Jul 6 00:49:35 2011
New Revision: 223813
URL: http://svn.freebsd.org/changeset/base/223813
Log:
Apply bug fixes
Submitted by: marius
Modified:
stable/8/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h
Modified: stable/8/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h
==============================================================================
--- stable/8/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h Wed Jul 6 00:48:31 2011 (r223812)
+++ stable/8/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h Wed Jul 6 00:49:35 2011 (r223813)
@@ -72,9 +72,9 @@ isc_atomic_xadd(isc_int32_t *p, isc_int3
for (prev = *(volatile isc_int32_t *)p; ; prev = swapped) {
swapped = prev + val;
__asm__ volatile(
- "casa [%1] %2, %3, %0"
- : "+r"(swapped)
- : "r"(p), "n"(ASI_P), "r"(prev));
+ "casa [%2] %3, %4, %0"
+ : "+r"(swapped), "=m"(*p)
+ : "r"(p), "n"(ASI_P), "r"(prev), "m"(*p));
if (swapped == prev)
break;
}
@@ -92,10 +92,9 @@ isc_atomic_store(isc_int32_t *p, isc_int
for (prev = *(volatile isc_int32_t *)p; ; prev = swapped) {
swapped = val;
__asm__ volatile(
- "casa [%1] %2, %3, %0"
- : "+r"(swapped)
- : "r"(p), "n"(ASI_P), "r"(prev)
- : "memory");
+ "casa [%2] %3, %4, %0"
+ : "+r"(swapped), "=m"(*p)
+ : "r"(p), "n"(ASI_P), "r"(prev), "m"(*p));
if (swapped == prev)
break;
}
@@ -111,9 +110,9 @@ isc_atomic_cmpxchg(isc_int32_t *p, isc_i
isc_int32_t temp = val;
__asm__ volatile(
- "casa [%1] %2, %3, %0"
- : "+r"(temp)
- : "r"(p), "n"(ASI_P), "r"(cmpval));
+ "casa [%2] %3, %4, %0"
+ : "+r"(temp), "=m"(*p)
+ : "r"(p), "n"(ASI_P), "r"(cmpval), "m"(*p));
return (temp);
}
More information about the svn-src-stable-8
mailing list