aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2019-10-21 14:07:50 -0400
committerCherry Zhang <cherryyz@google.com>2019-11-07 19:18:12 +0000
commit1b0b9809046c1862f8ea0240fe016e516c67676f (patch)
treefcfd68f04a70b1adaa8bff1757582d53fec7298d /src/cmd/compile/internal/ssa/gen/ARM64Ops.go
parent47360884638e5c8ad65003515b324ec33b823861 (diff)
downloadgo-1b0b9809046c1862f8ea0240fe016e516c67676f.tar.gz
go-1b0b9809046c1862f8ea0240fe016e516c67676f.zip
runtime: add async preemption support on ARM64
This CL adds support of call injection and async preemption on ARM64. There seems no way to return from the injected call without clobbering *any* register. So we have to clobber one, which is chosen to be REGTMP. Previous CLs have marked code sequences that use REGTMP async-nonpreemtible. Change-Id: Ieca4e3ba5557adf3d0f5d923bce5f1769b58e30b Reviewed-on: https://go-review.googlesource.com/c/go/+/203461 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/gen/ARM64Ops.go')
-rw-r--r--src/cmd/compile/internal/ssa/gen/ARM64Ops.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/gen/ARM64Ops.go b/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
index 6fdb5729c5..51a610fc76 100644
--- a/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
+++ b/src/cmd/compile/internal/ssa/gen/ARM64Ops.go
@@ -96,6 +96,8 @@ var regNamesARM64 = []string{
"F30",
"F31",
+ // If you add registers, update asyncPreempt in runtime.
+
// pseudo-registers
"SB",
}