diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2013-03-12 22:29:33 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2013-03-29 14:19:17 +0400 |
commit | 83be5947daf586924b54762415d0ca27e1a55942 (patch) | |
tree | 3a9c4e6c81ce588c9d825ab01587f4adac7106bd | |
parent | 75ad546c00ed583a68c0f19b7bf9e9d395d1b6aa (diff) |
Fix asm constraint of compare_and_swap for clang-3.1/mips
(Apply commit 3e4c369 from 'master' branch.)
* 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).
Conflicts:
src/atomic_ops/sysdeps/gcc/mips.h
-rw-r--r-- | src/atomic_ops/sysdeps/gcc/mips.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/mips.h b/src/atomic_ops/sysdeps/gcc/mips.h index 527a347..e09a558 100644 --- a/src/atomic_ops/sysdeps/gcc/mips.h +++ b/src/atomic_ops/sysdeps/gcc/mips.h @@ -59,7 +59,7 @@ AO_compare_and_swap(volatile AO_t *addr, AO_t old, AO_t new_val) " 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; |