+2008-11-03 Michael Matz <matz@suse.de>
+
+ * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_32_acq,
+ __arch_compare_and_exchange_val_64_acq): Add "memory" clobber.
+
2008-11-07 Jakub Jelinek <jakub@redhat.com>
* include/stdio.h (__builtin_fwrite, __builtin_fwrite_unlocked):
__typeof (*mem) __archold = (oldval); \
__asm __volatile ("cs %0,%2,%1" \
: "+d" (__archold), "=Q" (*__archmem) \
- : "d" (newval), "m" (*__archmem) : "cc" ); \
+ : "d" (newval), "m" (*__archmem) : "cc", "memory" ); \
__archold; })
#ifdef __s390x__
__typeof (*mem) __archold = (oldval); \
__asm __volatile ("csg %0,%2,%1" \
: "+d" (__archold), "=Q" (*__archmem) \
- : "d" ((long) (newval)), "m" (*__archmem) : "cc" ); \
+ : "d" ((long) (newval)), "m" (*__archmem) : "cc", "memory" ); \
__archold; })
#else
/* For 31 bit we do not really need 64-bit compare-and-exchange. We can