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
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)
MOVQ runtime·WriteFile(SB), AX
CALL AX
+ ADDQ $48, SP
RET
TEXT runtime·badsignal(SB),7,$48