diff --git a/include/atomic/x86-gcc.h b/include/atomic/x86-gcc.h
index 32839e0a67d2ae8965ab2860b7864db8a249557c..77c32f8d70c98d3cfd6c41cad31dd568d114b4e6 100644
--- a/include/atomic/x86-gcc.h
+++ b/include/atomic/x86-gcc.h
@@ -108,7 +108,7 @@
   int32 ebx=(set & 0xFFFFFFFF), ecx=(set >> 32);                \
   asm volatile ("push %%ebx; movl %3, %%ebx;"                   \
                 LOCK_prefix "; cmpxchg8b %0; setz %2; pop %%ebx"\
-               : "+m" (*a), "+A" (*cmp), "=q" (ret)             \
+               : "+m" (*a), "+A" (*cmp), "=c" (ret)             \
                :"m" (ebx), "c" (ecx))
 #endif