summaryrefslogtreecommitdiffstats
path: root/contrib/bind9/lib/isc
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-12-07 02:17:58 +0000
committermarcel <marcel@FreeBSD.org>2009-12-07 02:17:58 +0000
commit26d17419bab7b67d295ef36fdf909c5870b90728 (patch)
tree0c4eeeb5bb741b09df938c79a01cd93f8503d871 /contrib/bind9/lib/isc
parentfaf626e11c49da0df2f0d1c370455290efaadec7 (diff)
downloadFreeBSD-src-26d17419bab7b67d295ef36fdf909c5870b90728.zip
FreeBSD-src-26d17419bab7b67d295ef36fdf909c5870b90728.tar.gz
Fix Read-After-Write (RAW) dependency violation for ar.ccv in
isc_atomic_xadd() and isc_atomic_cmpxchg(). Approved by: dougb@ MFC after: 1 week
Diffstat (limited to 'contrib/bind9/lib/isc')
-rw-r--r--contrib/bind9/lib/isc/ia64/include/isc/atomic.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/bind9/lib/isc/ia64/include/isc/atomic.h b/contrib/bind9/lib/isc/ia64/include/isc/atomic.h
index 275741b..0fac76f 100644
--- a/contrib/bind9/lib/isc/ia64/include/isc/atomic.h
+++ b/contrib/bind9/lib/isc/ia64/include/isc/atomic.h
@@ -41,7 +41,7 @@ isc_atomic_xadd(isc_int32_t *p, isc_int32_t val)
for (prev = *(volatile isc_int32_t *)p; ; prev = swapped) {
swapped = prev + val;
__asm__ volatile(
- "mov ar.ccv=%2;"
+ "mov ar.ccv=%2;;"
"cmpxchg4.acq %0=%4,%3,ar.ccv"
: "=r" (swapped), "=m" (*p)
: "r" (prev), "r" (swapped), "m" (*p)
@@ -84,7 +84,7 @@ isc_atomic_cmpxchg(isc_int32_t *p, isc_int32_t cmpval, isc_int32_t val)
isc_int32_t ret;
__asm__ volatile(
- "mov ar.ccv=%2;"
+ "mov ar.ccv=%2;;"
"cmpxchg4.acq %0=%4,%3,ar.ccv"
: "=r" (ret), "=m" (*p)
: "r" (cmpval), "r" (val), "m" (*p)
OpenPOWER on IntegriCloud