1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Fix SPARC atomic_write_barrier.

This commit is contained in:
Torvald Riegel
2014-10-29 19:14:14 +01:00
parent b4f6688462
commit ff9dbdc048
4 changed files with 13 additions and 4 deletions

View File

@ -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)

View File

@ -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")

View File

@ -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")