1
0
mirror of https://github.com/golang/go synced 2024-11-13 17:30:24 -07:00

runtime: manage stack by ourselves for badcallback on windows/amd64

This function uses 48-byte of precious non-split stack for every callback
function, and without this CL, it can easily overflow the non-split stack.
I encountered this when trying to enable misc/cgo/test on windows/amd64.

R=rsc
CC=golang-dev
https://golang.org/cl/5784075
This commit is contained in:
Shenghou Ma 2012-03-15 02:24:49 +08:00
parent 1ddc9feb53
commit b2a9079e54

View File

@ -60,7 +60,11 @@ loadregs:
RET
TEXT runtime·badcallback(SB),7,$48
// This should be called on a system stack,
// so we don't need to concern about split stack.
TEXT runtime·badcallback(SB),7,$0
SUBQ $48, SP
// stderr
MOVQ $-12, CX // stderr
MOVQ CX, 0(SP)
@ -80,6 +84,7 @@ TEXT runtime·badcallback(SB),7,$48
MOVQ runtime·WriteFile(SB), AX
CALL AX
ADDQ $48, SP
RET
TEXT runtime·badsignal(SB),7,$48