From c39944135c75de19a123d812da91f192b51256fa Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Thu, 5 Oct 2017 11:40:31 +0300 Subject: [PATCH] Fix 'bad register name %sil' assembler error (GCC-4.4/x86) (fix commit 7708b76) * src/atomic_ops/sysdeps/gcc/x86.h [!AO_USE_SYNC_CAS_BUILTIN] (AO_char_fetch_compare_and_swap_full): Replace "r"(new_val) to "q"(new_val) in __asm__("cmpxchgb"). --- src/atomic_ops/sysdeps/gcc/x86.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atomic_ops/sysdeps/gcc/x86.h b/src/atomic_ops/sysdeps/gcc/x86.h index 20bf77f..3ab1f76 100644 --- a/src/atomic_ops/sysdeps/gcc/x86.h +++ b/src/atomic_ops/sysdeps/gcc/x86.h @@ -292,7 +292,7 @@ AO_fetch_compare_and_swap_full(volatile AO_t *addr, AO_t old_val, __asm__ __volatile__ ("lock; cmpxchgb %3, %4" : "=a" (fetched_val), "=m" (*addr) - : "a" (old_val), "r" (new_val), "m" (*addr) + : "a" (old_val), "q" (new_val), "m" (*addr) : "memory"); return fetched_val; # endif -- 2.7.4