diff options
-rw-r--r-- | libc/sysdeps/linux/arc/bits/atomic.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/arc/bits/atomic.h b/libc/sysdeps/linux/arc/bits/atomic.h index d4abf4eb7..1fdc83f70 100644 --- a/libc/sysdeps/linux/arc/bits/atomic.h +++ b/libc/sysdeps/linux/arc/bits/atomic.h @@ -24,8 +24,11 @@ typedef uintmax_t uatomic_max_t; void __arc_link_error (void); -#define atomic_full_barrier() \ - __asm__ __volatile__("": : :"memory") +#ifdef __A7__ +#define atomic_full_barrier() __asm__ __volatile__("": : :"memory") +#else +#define atomic_full_barrier() __asm__ __volatile__("dmb 3": : :"memory") +#endif /* Atomic compare and exchange. */ |