1
0
mirror of https://github.com/golang/go synced 2024-11-23 20:10:08 -07:00

runtime: fix windows-amd64-2012 build

I forgot that in Go assembly, x+16(SP) is not the same as 16(SP).
The former is the virtual stack pointer (one word below FP on x86)
while the latter is the actual stack pointer.

Change-Id: Ibb7012bb97261949f5e1a0dc70869d9a6f50aa99
Reviewed-on: https://go-review.googlesource.com/c/go/+/176557
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Russ Cox 2019-05-10 11:13:06 -04:00
parent 1d1ff46966
commit ef4666ecce
2 changed files with 3 additions and 2 deletions

View File

@ -135,7 +135,8 @@ var (
// to start new os thread.
func tstart_stdcall(newm *m)
func ctrlhandler(_type uint32)
// Called by OS using stdcall ABI.
func ctrlhandler()
type mOS struct {
waitsema uintptr // semaphore for parking on locks

View File

@ -211,7 +211,7 @@ TEXT runtime·lastcontinuetramp(SB),NOSPLIT|NOFRAME,$0-0
JMP sigtramp<>(SB)
TEXT runtime·ctrlhandler(SB),NOSPLIT|NOFRAME,$8
MOVQ CX, _type+16(SP) // spill
MOVQ CX, 16(SP) // spill
MOVQ $runtime·ctrlhandler1(SB), CX
MOVQ CX, 0(SP)
CALL runtime·externalthreadhandler(SB)