From 13b7c04d3f15e5b3bc767057de148d8bf116dcf4 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Tue, 16 Apr 2019 11:59:05 -0700 Subject: [PATCH] runtime/internal/atomic: fix s390x's StorepNoWB implementation Same as CL 170323, but for s390x instead of wasm. Fixes #31495. Change-Id: Ie39f649f5e33690375a8bcb1bc3b92d912ca4398 Reviewed-on: https://go-review.googlesource.com/c/go/+/172417 Run-TryBot: Matthew Dempsky Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/runtime/internal/atomic/atomic_s390x.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/runtime/internal/atomic/atomic_s390x.go b/src/runtime/internal/atomic/atomic_s390x.go index ec294a27ba..2ffbec0b3f 100644 --- a/src/runtime/internal/atomic/atomic_s390x.go +++ b/src/runtime/internal/atomic/atomic_s390x.go @@ -42,11 +42,14 @@ func Store64(ptr *uint64, val uint64) { *ptr = val } +//go:notinheap +type noWB struct{} + // NO go:noescape annotation; see atomic_pointer.go. //go:noinline //go:nosplit func StorepNoWB(ptr unsafe.Pointer, val unsafe.Pointer) { - *(*uintptr)(ptr) = uintptr(val) + *(**noWB)(ptr) = (*noWB)(val) } //go:noinline -- 2.48.1