aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-11-07 15:18:47 +0000
committerJakub Jelinek <jakub@redhat.com>2008-11-07 15:18:47 +0000
commita90695507e7ae4bac5f24ff29e0febf35929c255 (patch)
treee9815eeb8e62b2ff4501ddb46c8b3f02b88aa231
parent09f66a4f52fa6ade6d93c8bc16bbb349cb52d915 (diff)
downloadglibc-a90695507e7ae4bac5f24ff29e0febf35929c255.tar
glibc-a90695507e7ae4bac5f24ff29e0febf35929c255.tar.gz
glibc-a90695507e7ae4bac5f24ff29e0febf35929c255.tar.bz2
glibc-a90695507e7ae4bac5f24ff29e0febf35929c255.zip
* 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 <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.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/s390/bits/atomic.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d4c45e103d..3f093d3c9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+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):
diff --git a/sysdeps/s390/bits/atomic.h b/sysdeps/s390/bits/atomic.h
index aa00473413..95d0390d09 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