From 3e4c369bae21d1247a71d2611eb30ce577ced508 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Tue, 12 Mar 2013 22:29:33 +0400 Subject: [PATCH] Fix asm constraint of compare_and_swap for clang-3.1/mips * src/atomic_ops/sysdeps/gcc/mips.h (AO_compare_and_swap): Use "+m" asm constraint for *addr instead of "+R" (the letter is unsupported by clang3.1 resulting in "invalid output constraint in asm" error). --- src/atomic_ops/sysdeps/gcc/mips.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/atomic_ops/sysdeps/gcc/mips.h b/src/atomic_ops/sysdeps/gcc/mips.h index 10bb571..bf14a38 100644 --- a/src/atomic_ops/sysdeps/gcc/mips.h +++ b/src/atomic_ops/sysdeps/gcc/mips.h @@ -127,7 +127,7 @@ AO_test_and_set(volatile AO_TS_t *addr) " beqz %0, 1b \n" " li %2, 1 \n" "2: " - : "=&r" (temp), "+R" (*addr), "+r" (was_equal) + : "=&r" (temp), "+m" (*addr), "+r" (was_equal) : "r" (new_val), "r" (old) : "memory"); return was_equal; -- 2.50.1