mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Fix SPARC atomic_write_barrier.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2014-10-31 Torvald Riegel <triegel@redhat.com>
|
||||||
|
|
||||||
|
* 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 <roland@hack.frob.com>
|
2014-10-30 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
* include/ctype.h: Include <ctype/ctype.h> first thing rather than
|
* include/ctype.h: Include <ctype/ctype.h> first thing rather than
|
||||||
|
@ -343,8 +343,8 @@ extern uint64_t _dl_hwcap __attribute__((weak));
|
|||||||
#define atomic_write_barrier() \
|
#define atomic_write_barrier() \
|
||||||
do { \
|
do { \
|
||||||
if (__atomic_is_v9) \
|
if (__atomic_is_v9) \
|
||||||
/* membar #StoreLoad | #StoreStore */ \
|
/* membar #LoadStore | #StoreStore */ \
|
||||||
__asm __volatile (".word 0x8143e00a" : : : "memory"); \
|
__asm __volatile (".word 0x8143e00c" : : : "memory"); \
|
||||||
else \
|
else \
|
||||||
__asm __volatile ("" : : : "memory"); \
|
__asm __volatile ("" : : : "memory"); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -96,4 +96,4 @@ typedef uintmax_t uatomic_max_t;
|
|||||||
#define atomic_read_barrier() \
|
#define atomic_read_barrier() \
|
||||||
__asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
|
__asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
|
||||||
#define atomic_write_barrier() \
|
#define atomic_write_barrier() \
|
||||||
__asm __volatile ("membar #StoreLoad | #StoreStore" : : : "memory")
|
__asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")
|
||||||
|
@ -117,4 +117,4 @@ typedef uintmax_t uatomic_max_t;
|
|||||||
#define atomic_read_barrier() \
|
#define atomic_read_barrier() \
|
||||||
__asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
|
__asm __volatile ("membar #LoadLoad | #LoadStore" : : : "memory")
|
||||||
#define atomic_write_barrier() \
|
#define atomic_write_barrier() \
|
||||||
__asm __volatile ("membar #StoreLoad | #StoreStore" : : : "memory")
|
__asm __volatile ("membar #LoadStore | #StoreStore" : : : "memory")
|
||||||
|
Reference in New Issue
Block a user