]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3366. [bug] Fixed Read-After-Write dependency violation for IA64
authorckb <ckb@isc.org>
Fri, 17 Aug 2012 18:07:11 +0000 (13:07 -0500)
committerckb <ckb@isc.org>
Fri, 17 Aug 2012 18:07:11 +0000 (13:07 -0500)
atomic operations. [RT #25181]

CHANGES
lib/isc/ia64/include/isc/atomic.h

diff --git a/CHANGES b/CHANGES
index def5092cf5666bc8a051c086136ba20cbf87a139..fe1e625cf37d5bba31b5ee2c3aec04c797b322a4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3366.  [bug]           Fixed Read-After-Write dependency violation for IA64 
+                       atomic operations. [RT #25181]
+
 3365.  [bug]           Removed spurious newlines from log messages in
                        zone.c [RT #30675]
 
index 728edd93900b70168a602c19699c989ed2e9eda9..1c7c6cd112bc8d12ef9ba67946639599a601acd7 100644 (file)
@@ -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)