From: Torvald Riegel Date: Wed, 29 Oct 2014 18:14:14 +0000 (+0100) Subject: Fix SPARC atomic_write_barrier. X-Git-Tag: upstream/2.30~6865 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ff9dbdc048f8341c5f1bc6a6982b669b49a40983;p=external%2Fglibc.git Fix SPARC atomic_write_barrier. --- diff --git a/ChangeLog b/ChangeLog index ef67160..41bfbe7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-10-31 Torvald Riegel + + * sysdeps/sparc/sparc32/bits/atomic.h (atomic_write_barrier): Use + correct barrier instruction. + * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h (atomic_write_barrier): + Likewise. + * sysdeps/sparc/sparc64/bits/atomic.h (atomic_write_barrier): + Likewise. + 2014-10-30 Roland McGrath * include/ctype.h: Include first thing rather than diff --git a/sysdeps/sparc/sparc32/bits/atomic.h b/sysdeps/sparc/sparc32/bits/atomic.h index 39c2b37..251e656 100644 --- a/sysdeps/sparc/sparc32/bits/atomic.h +++ b/sysdeps/sparc/sparc32/bits/atomic.h @@ -343,8 +343,8 @@ extern uint64_t _dl_hwcap __attribute__((weak)); #define atomic_write_barrier() \ do { \ if (__atomic_is_v9) \ - /* membar #StoreLoad | #StoreStore */ \ - __asm __volatile (".word 0x8143e00a" : : : "memory"); \ + /* membar #LoadStore | #StoreStore */ \ + __asm __volatile (".word 0x8143e00c" : : : "memory"); \ else \ __asm __volatile ("" : : : "memory"); \ } while (0) diff --git a/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h b/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h index 4835019..310e636 100644 --- a/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h +++ b/sysdeps/sparc/sparc32/sparcv9/bits/atomic.h @@ -96,4 +96,4 @@ typedef uintmax_t uatomic_max_t; #define atomic_read_barrier() \ __asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory") #define atomic_write_barrier() \ - __asm __volatile ("membar #StoreLoad | #StoreStore" : : : "memory") + __asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory") diff --git a/sysdeps/sparc/sparc64/bits/atomic.h b/sysdeps/sparc/sparc64/bits/atomic.h index ad9dae1..d348ed2 100644 --- a/sysdeps/sparc/sparc64/bits/atomic.h +++ b/sysdeps/sparc/sparc64/bits/atomic.h @@ -117,4 +117,4 @@ typedef uintmax_t uatomic_max_t; #define atomic_read_barrier() \ __asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory") #define atomic_write_barrier() \ - __asm __volatile ("membar #StoreLoad | #StoreStore" : : : "memory") + __asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")