From: Matthew Dempsky Date: Tue, 16 Apr 2019 18:59:05 +0000 (-0700) Subject: runtime/internal/atomic: fix s390x's StorepNoWB implementation X-Git-Tag: go1.13beta1~663 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=13b7c04d3f15e5b3bc767057de148d8bf116dcf4;p=gostls13.git 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 --- 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