cmd/internal/obj/s390x: mark unsafe points
For async preemption, we will be using REGTMP as a temporary register in injected call on S390X, which will clobber it. So any code that uses REGTMP is not safe for async preemption. In the assembler backend, we expand a Prog to multiple machine instructions and use REGTMP as a temporary register if necessary. These need to be marked unsafe. Unlike ARM64 and MIPS, instructions on S390X are variable length so we don't use the length as a condition. Instead, we set a bit on the Prog whenever REGTMP is used. Change-Id: Ie5d14068a950f4c7cea51dff2c4a8bdc19ec9348 Reviewed-on: https://go-review.googlesource.com/c/go/+/204105 Run-TryBot: Cherry Zhang <cherryyz@google.com> Reviewed-by: Keith Randall <khr@golang.org>
Showing
This diff is collapsed.
Please register or sign in to comment