svn commit: r200202 - head/contrib/bind9/lib/isc/ia64/include/isc

Marcel Moolenaar marcel at FreeBSD.org
Mon Dec 7 02:17:59 UTC 2009


Author: marcel
Date: Mon Dec  7 02:17:58 2009
New Revision: 200202
URL: http://svn.freebsd.org/changeset/base/200202

Log:
  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

Modified:
  head/contrib/bind9/lib/isc/ia64/include/isc/atomic.h

Modified: head/contrib/bind9/lib/isc/ia64/include/isc/atomic.h
==============================================================================
--- head/contrib/bind9/lib/isc/ia64/include/isc/atomic.h	Mon Dec  7 01:46:39 2009	(r200201)
+++ head/contrib/bind9/lib/isc/ia64/include/isc/atomic.h	Mon Dec  7 02:17:58 2009	(r200202)
@@ -41,7 +41,7 @@ isc_atomic_xadd(isc_int32_t *p, isc_int3
 	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_i
 	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)


More information about the svn-src-head mailing list