projects
/
platform
/
upstream
/
libatomic_ops.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
83be594
)
Fix asm constraint of CAS memory operand for gcc/alpha
author
Ivan Maidanski
<ivmai@mail.ru>
Wed, 13 Mar 2013 18:46:24 +0000
(22:46 +0400)
committer
Ivan Maidanski
<ivmai@mail.ru>
Fri, 29 Mar 2013 10:21:41 +0000
(14:21 +0400)
* src/atomic_ops/sysdeps/gcc/alpha.h (AO_compare_and_swap): Use "+m"
asm constraint for *addr instead of "=m" (because the value pointed by
addr is read and written by the code).
src/atomic_ops/sysdeps/gcc/alpha.h
patch
|
blob
|
history
diff --git
a/src/atomic_ops/sysdeps/gcc/alpha.h
b/src/atomic_ops/sysdeps/gcc/alpha.h
index
61d0433
..
f90a86a
100644
(file)
--- a/
src/atomic_ops/sysdeps/gcc/alpha.h
+++ b/
src/atomic_ops/sysdeps/gcc/alpha.h
@@
-55,7
+55,7
@@
AO_compare_and_swap(volatile AO_t *addr,
" stq_c %0,%1\n"
" beq %0,1b\n"
"2:\n"
- :
"=&r" (temp), "=
m" (*addr), "=&r" (was_equal)
+ :
"=&r" (temp), "+
m" (*addr), "=&r" (was_equal)
: "r" (new_val), "Ir" (old)
:"memory");
return (int)was_equal;