@@ -639,11 +639,11 @@ "xorl %0, %0\n\t" "lock\n\t" "cmpxchg %2, %3\n\t" "sete %b0\n\t" "movzbl %b0, %0" - : "=&r"(r) + : "=&d"(r) /* use d instead of r due to gcc bug */ : "a"(o), "r"(n), "m"(*p) ); return r; #elif defined(OF_HAVE_GCC_ATOMIC_OPS) @@ -670,11 +670,11 @@ "xorl %0, %0\n\t" "lock\n\t" "cmpxchg %2, %3\n\t" "sete %b0\n\t" "movzbl %b0, %0" - : "=&r"(r) + : "=&d"(r) /* use d instead of r due to gcc bug */ : "a"(o), "r"(n), "m"(*p) ); return r; #elif defined(OF_HAVE_GCC_ATOMIC_OPS) @@ -701,11 +701,11 @@ "xorl %0, %0\n\t" "lock\n\t" "cmpxchg %2, %3\n\t" "sete %b0\n\t" "movzbl %b0, %0" - : "=&r"(r) + : "=&d"(r) /* use d instead of r due to gcc bug */ : "a"(o), "r"(n), "m"(*p) ); return r; #elif defined(OF_HAVE_GCC_ATOMIC_OPS)