Commit ee6c6d96 authored by Russ Cox's avatar Russ Cox

runtime: fix windows/386 build

The difference between the old and the new (from earlier) code
is that we set stackguard = stack.lo + StackGuard, while the old
code set stackguard = stack.lo. That 512 bytes appears to be
the difference between the profileloop function running and not running.

We don't know how big the system stack is, but it is likely MUCH bigger than 4k.
Give Go/C 8k.

TBR=iant
CC=golang-codereviews
https://golang.org/cl/140440044
parent 16c59acb
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
#include "textflag.h" #include "textflag.h"
// NOTE: Windows externalthreadhandler expects memclr to preserve DX.
// void runtime·memclr(void*, uintptr) // void runtime·memclr(void*, uintptr)
TEXT runtime·memclr(SB), NOSPLIT, $0-8 TEXT runtime·memclr(SB), NOSPLIT, $0-8
MOVL ptr+0(FP), DI MOVL ptr+0(FP), DI
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
#include "textflag.h" #include "textflag.h"
// NOTE: Windows externalthreadhandler expects memclr to preserve DX.
// void runtime·memclr(void*, uintptr) // void runtime·memclr(void*, uintptr)
TEXT runtime·memclr(SB), NOSPLIT, $0-16 TEXT runtime·memclr(SB), NOSPLIT, $0-16
MOVQ ptr+0(FP), DI MOVQ ptr+0(FP), DI
......
...@@ -191,7 +191,7 @@ TEXT runtime·externalthreadhandler(SB),NOSPLIT,$0 ...@@ -191,7 +191,7 @@ TEXT runtime·externalthreadhandler(SB),NOSPLIT,$0
CALL runtime·memclr(SB) // smashes AX,BX,CX CALL runtime·memclr(SB) // smashes AX,BX,CX
LEAL g_end(SP), BX LEAL g_end(SP), BX
MOVL BX, g_m(SP) MOVL BX, g_m(SP)
LEAL -4096(SP), CX LEAL -8192(SP), CX
MOVL CX, (g_stack+stack_lo)(SP) MOVL CX, (g_stack+stack_lo)(SP)
ADDL $const_StackGuard, CX ADDL $const_StackGuard, CX
MOVL CX, g_stackguard0(SP) MOVL CX, g_stackguard0(SP)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment