From: Jakub Jelinek Date: Fri, 7 Nov 2008 15:18:47 +0000 (+0000) Subject: * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_32_acq, X-Git-Tag: cvs/fedora-glibc-20081112T2008~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a90695507e7ae4bac5f24ff29e0febf35929c255;p=thirdparty%2Fglibc.git * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_32_acq, __arch_compare_and_exchange_val_64_acq): Add "memory" clobber. 2008-11-03 Michael Matz * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_32_acq, __arch_compare_and_exchange_val_64_acq): Add "memory" clobber. --- diff --git a/ChangeLog b/ChangeLog index d4c45e103d3..3f093d3c9a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-11-03 Michael Matz + + * 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 * include/stdio.h (__builtin_fwrite, __builtin_fwrite_unlocked): diff --git a/sysdeps/s390/bits/atomic.h b/sysdeps/s390/bits/atomic.h index aa004734138..95d0390d09d 100644 --- a/sysdeps/s390/bits/atomic.h +++ b/sysdeps/s390/bits/atomic.h @@ -56,7 +56,7 @@ typedef uintmax_t uatomic_max_t; __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__ @@ -65,7 +65,7 @@ typedef uintmax_t uatomic_max_t; __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