]> Cypherpunks repositories - gostls13.git/commit
runtime: asynchronous preemption function for x86
authorAustin Clements <austin@google.com>
Wed, 16 Oct 2019 23:10:06 +0000 (19:10 -0400)
committerAustin Clements <austin@google.com>
Sat, 2 Nov 2019 21:51:14 +0000 (21:51 +0000)
commita3ffb0d9eb948409c0898c6b1803401c9bc68ed4
treeb5d9aa8849a61c16b76d4a3298cdfee195951bbe
parent2d031dc559a720ec2c1939848a2e5de2782acd5a
runtime: asynchronous preemption function for x86

This adds asynchronous preemption function for amd64 and 386. These
functions spill and restore all register state that can be used by
user Go code.

For the moment we stub out the other arches.

For #10958, #24543.

Change-Id: I6f93fabe9875f4834922a5712362e79045c00aca
Reviewed-on: https://go-review.googlesource.com/c/go/+/201759
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
13 files changed:
src/cmd/compile/internal/ssa/gen/386Ops.go
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/runtime/mkpreempt.go [new file with mode: 0644]
src/runtime/preempt.go
src/runtime/preempt_386.s [new file with mode: 0644]
src/runtime/preempt_amd64.s [new file with mode: 0644]
src/runtime/preempt_arm.s [new file with mode: 0644]
src/runtime/preempt_arm64.s [new file with mode: 0644]
src/runtime/preempt_mips64x.s [new file with mode: 0644]
src/runtime/preempt_mipsx.s [new file with mode: 0644]
src/runtime/preempt_ppc64x.s [new file with mode: 0644]
src/runtime/preempt_s390x.s [new file with mode: 0644]
src/runtime/preempt_wasm.s [new file with mode: 0644]