svn commit: r200497 - stable/8/contrib/bind9/lib/isc/ia64/include/isc

Marcel Moolenaar marcel at FreeBSD.org
Sun Dec 13 17:10:05 PST 2009


Author: marcel
Date: Mon Dec 14 01:10:05 2009
New Revision: 200497
URL: http://svn.freebsd.org/changeset/base/200497

Log:
  MFC rev 200202:
  Fix Read-After-Write (RAW) dependency violation for ar.ccv in
  isc_atomic_xadd() and isc_atomic_cmpxchg().
  
  Approved by:	dougb@

Modified:
  stable/8/contrib/bind9/lib/isc/ia64/include/isc/atomic.h
Directory Properties:
  stable/8/contrib/bind9/   (props changed)

Modified: stable/8/contrib/bind9/lib/isc/ia64/include/isc/atomic.h
==============================================================================
--- stable/8/contrib/bind9/lib/isc/ia64/include/isc/atomic.h	Mon Dec 14 01:06:55 2009	(r200496)
+++ stable/8/contrib/bind9/lib/isc/ia64/include/isc/atomic.h	Mon Dec 14 01:10:05 2009	(r200497)
@@ -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-stable-8 mailing list