]> Cypherpunks repositories - gostls13.git/commit
cmd/compile, cmd/internal/obj/ppc64: mark unsafe points
authorCherry Zhang <cherryyz@google.com>
Mon, 28 Oct 2019 04:50:39 +0000 (00:50 -0400)
committerCherry Zhang <cherryyz@google.com>
Thu, 7 Nov 2019 19:20:35 +0000 (19:20 +0000)
commitceca99bdebf1154879288d108c8506372e1a0173
tree86e605208452c73910534e1c4b6b893dcb6f70a8
parent24e549a717d1e083e7bef9003bce124294e9e975
cmd/compile, cmd/internal/obj/ppc64: mark unsafe points

We'll use CTR as a scratch register for call injection. Mark code
sequences that use CTR as unsafe for async preemption. Currently
it is only used in LoweredZero and LoweredMove. It is unfortunate
that they are nonpreemptible. But I think it is still better than
using LR for call injection and marking all leaf functions
nonpreemptible.

Also mark the prologue of large frame functions nonpreemptible,
as we write below SP.

Change-Id: I05a75431499f3f4b2f23651a7b17f7fcf2afbe06
Reviewed-on: https://go-review.googlesource.com/c/go/+/203823
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/ssa/gen/PPC64Ops.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/internal/obj/ppc64/obj9.go