diff options
author | marcel <marcel@FreeBSD.org> | 2009-12-07 02:17:58 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2009-12-07 02:17:58 +0000 |
commit | 26d17419bab7b67d295ef36fdf909c5870b90728 (patch) | |
tree | 0c4eeeb5bb741b09df938c79a01cd93f8503d871 /contrib/bind9/lib | |
parent | faf626e11c49da0df2f0d1c370455290efaadec7 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | contrib/bind9/lib/isc/ia64/include/isc/atomic.h | 4 |
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) |