Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/common/lib/libc/arch/arm/atomic/membar_ops.S,v rcsdiff: /ftp/cvs/cvsroot/src/common/lib/libc/arch/arm/atomic/membar_ops.S,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.6.28.2 retrieving revision 1.7 diff -u -p -r1.6.28.2 -r1.7 --- src/common/lib/libc/arch/arm/atomic/membar_ops.S 2021/08/11 17:05:42 1.6.28.2 +++ src/common/lib/libc/arch/arm/atomic/membar_ops.S 2021/04/27 05:40:29 1.7 @@ -1,4 +1,4 @@ -/* $NetBSD: membar_ops.S,v 1.6.28.2 2021/08/11 17:05:42 martin Exp $ */ +/* $NetBSD: membar_ops.S,v 1.7 2021/04/27 05:40:29 skrll Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. * All rights reserved. @@ -30,10 +30,15 @@ #include "atomic_op_asm.h" -#if defined(_ARM_ARCH_6) +#ifdef _ARM_ARCH_6 ENTRY_NP(_membar_producer) - DMBST +#ifdef _ARM_ARCH_7 + dmb ishst +#else + mov r0, #0 + mcr p15, 0, r0, c7, c10, 5 /* Data Memory Barrier */ +#endif RET END(_membar_producer) ATOMIC_OP_ALIAS(membar_producer,_membar_producer) @@ -41,7 +46,12 @@ ATOMIC_OP_ALIAS(membar_write,_membar_pro STRONG_ALIAS(_membar_write,_membar_producer) ENTRY_NP(_membar_sync) - DMB +#ifdef _ARM_ARCH_7 + dmb ish +#else + mov r0, #0 + mcr p15, 0, r0, c7, c10, 5 /* Data Memory Barrier */ +#endif RET END(_membar_sync) ATOMIC_OP_ALIAS(membar_sync,_membar_sync) @@ -49,7 +59,7 @@ ATOMIC_OP_ALIAS(membar_enter,_membar_syn ATOMIC_OP_ALIAS(membar_exit,_membar_sync) ATOMIC_OP_ALIAS(membar_consumer,_membar_sync) ATOMIC_OP_ALIAS(membar_read,_membar_sync) -STRONG_ALIAS(__sync_synchronize,_membar_sync) +CRT_ALIAS(__sync_synchronize,_membar_sync) STRONG_ALIAS(_membar_enter,_membar_sync) STRONG_ALIAS(_membar_exit,_membar_sync) STRONG_ALIAS(_membar_consumer,_membar_sync)