aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/config/cpu/i486/atomicity.h
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/config/cpu/i486/atomicity.h')
-rw-r--r--libstdc++-v3/config/cpu/i486/atomicity.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/libstdc++-v3/config/cpu/i486/atomicity.h b/libstdc++-v3/config/cpu/i486/atomicity.h
index 51ba5410c85..06ab866bbe3 100644
--- a/libstdc++-v3/config/cpu/i486/atomicity.h
+++ b/libstdc++-v3/config/cpu/i486/atomicity.h
@@ -34,24 +34,21 @@ typedef int _Atomic_word;
static inline _Atomic_word
__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
+__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
register _Atomic_word __result;
__asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}"
- : "=r" (__result), "+m" (*__mem)
- : "0" (__val)
- : "memory");
+ : "=r" (__result), "=m" (*__mem)
+ : "0" (__val), "m" (*__mem));
return __result;
}
static inline void
__attribute__ ((__unused__))
-__atomic_add (volatile _Atomic_word* __mem, int __val)
+__atomic_add(volatile _Atomic_word* __mem, int __val)
{
__asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
- : "+m" (*__mem) : "ir" (__val) : "memory");
+ : "=m" (*__mem) : "ir" (__val), "m" (*__mem));
}
#endif /* atomicity.h */
-
-