diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2012-09-18 19:03:19 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2012-10-08 17:33:48 +0200 |
commit | 97543e0938f8cdbaa0ccbdc2229b58aaf714fb9e (patch) | |
tree | deb8bf0971446ac36258b1ff397c02cb0ef0c8b0 | |
parent | 4249356fc02244f7cf7d4047378307a272c806f4 (diff) | |
download | libatomic_ops-97543e0938f8cdbaa0ccbdc2229b58aaf714fb9e.tar.gz |
Fix cmpxchg16b-based compare_double_and_swap_double for SunCC/x86_64
* src/atomic_ops/sysdeps/sunc/x86_64.h
(AO_compare_double_and_swap_double_full): Fix inline assembly
arguments commenting out "m"(*addr) one (similar to that in
sunc/x86.h) if AO_CMPXCHG16B_AVAILABLE defined.
-rw-r--r-- | src/atomic_ops/sysdeps/sunc/x86_64.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/atomic_ops/sysdeps/sunc/x86_64.h b/src/atomic_ops/sysdeps/sunc/x86_64.h index 29d5647..5c66f42 100644 --- a/src/atomic_ops/sysdeps/sunc/x86_64.h +++ b/src/atomic_ops/sysdeps/sunc/x86_64.h @@ -142,7 +142,7 @@ AO_compare_double_and_swap_double_full (volatile AO_double_t *addr, char result; __asm__ __volatile__ ("lock; cmpxchg16b %0; setz %1" : "=m"(*addr), "=a"(result) - : "m"(*addr), "d" (old_val2), "a" (old_val1), + : /* "m" (*addr), */ "d" (old_val2), "a" (old_val1), "c" (new_val2), "b" (new_val1) : "memory"); return (int) result; } |