summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-09-18 19:03:19 +0400
committerIvan Maidanski <ivmai@mail.ru>2012-10-08 17:33:48 +0200
commit97543e0938f8cdbaa0ccbdc2229b58aaf714fb9e (patch)
treedeb8bf0971446ac36258b1ff397c02cb0ef0c8b0
parent4249356fc02244f7cf7d4047378307a272c806f4 (diff)
downloadlibatomic_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.h2
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;
}