Module Name: src Committed By: riastradh Date: Sat Apr 9 12:07:18 UTC 2022
Modified Files: src/common/lib/libc/arch/i386/atomic: atomic.S src/common/lib/libc/arch/x86_64/atomic: atomic.S Log Message: x86: Omit needless store in membar_producer/exit. On x86, every store is a store-release, so there is no need for any barrier. But this wasn't a barrier anyway; it was just a store, which was redundant with the store of the return address to the stack implied by CALL even if issuing a store made a difference. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/common/lib/libc/arch/i386/atomic/atomic.S cvs rdiff -u -r1.24 -r1.25 src/common/lib/libc/arch/x86_64/atomic/atomic.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/common/lib/libc/arch/i386/atomic/atomic.S diff -u src/common/lib/libc/arch/i386/atomic/atomic.S:1.31 src/common/lib/libc/arch/i386/atomic/atomic.S:1.32 --- src/common/lib/libc/arch/i386/atomic/atomic.S:1.31 Sat Apr 9 12:07:00 2022 +++ src/common/lib/libc/arch/i386/atomic/atomic.S Sat Apr 9 12:07:17 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: atomic.S,v 1.31 2022/04/09 12:07:00 riastradh Exp $ */ +/* $NetBSD: atomic.S,v 1.32 2022/04/09 12:07:17 riastradh Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -188,8 +188,11 @@ ENTRY(_membar_consumer) END(_membar_consumer) ENTRY(_membar_producer) - /* A store is enough */ - movl $0, -4(%esp) + /* + * Every store to normal memory is a store-release on x86, so + * there is never any need for explicit barriers to order + * anything-before-store. + */ ret END(_membar_producer) Index: src/common/lib/libc/arch/x86_64/atomic/atomic.S diff -u src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.24 src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.25 --- src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.24 Sat Apr 9 12:07:00 2022 +++ src/common/lib/libc/arch/x86_64/atomic/atomic.S Sat Apr 9 12:07:17 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: atomic.S,v 1.24 2022/04/09 12:07:00 riastradh Exp $ */ +/* $NetBSD: atomic.S,v 1.25 2022/04/09 12:07:17 riastradh Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -263,8 +263,11 @@ ENTRY(_membar_consumer) END(_membar_consumer) ENTRY(_membar_producer) - /* A store is enough */ - movq $0, -8(%rsp) + /* + * Every store to normal memory is a store-release on x86, so + * there is never any need for explicit barriers to order + * anything-before-store. + */ ret END(_membar_producer)