]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix build failures after CL 137410043
authorRuss Cox <rsc@golang.org>
Tue, 9 Sep 2014 18:02:37 +0000 (14:02 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 9 Sep 2014 18:02:37 +0000 (14:02 -0400)
No promise about correctness, but they do build.

TBR=khr
CC=golang-codereviews
https://golang.org/cl/143720043

src/runtime/asm_386.s
src/runtime/asm_amd64p32.s
src/runtime/os_freebsd.c
src/runtime/os_solaris.c
src/runtime/sys_plan9_386.s
src/runtime/sys_plan9_amd64.s
src/runtime/sys_solaris_amd64.s
src/runtime/sys_windows_386.s
src/runtime/sys_windows_amd64.s

index fc01b995b1870c8ef4c2771a8d3436c8dbdc72ee..2376ab92ba1635ac364399e3101d667e20b46cd5 100644 (file)
@@ -811,7 +811,7 @@ TEXT setg_gcc<>(SB), NOSPLIT, $0
        MOVL    DX, g(AX)
        RET
 
-// check that SP is in range [g->stackbase, g->stackguard)
+// check that SP is in range [g->stack.lo, g->stack.hi)
 TEXT runtime·stackcheck(SB), NOSPLIT, $0-0
        get_tls(CX)
        MOVL    g(CX), AX
index 046eb1cd6f45c7b99d438b8b58bda27811c2e8b7..5d82d84aa421bdec0727e0cdfafbb0c1aa183ae9 100644 (file)
@@ -590,7 +590,7 @@ TEXT runtime·setg(SB), NOSPLIT, $0-4
        MOVL    0, AX
        RET
 
-// check that SP is in range [g->stackbase, g->stackguard)
+// check that SP is in range [g->stack.lo, g->stack.hi)
 TEXT runtime·stackcheck(SB), NOSPLIT, $0-0
        get_tls(CX)
        MOVL    g(CX), AX
index cde6936de5e57e3df574de0f866e02801d85e4f9..a513cb6044e954a96346f4b7de8d567021c9f6c1 100644 (file)
@@ -153,8 +153,8 @@ runtime·newosproc(M *mp, void *stk)
        
        // NOTE(rsc): This code is confused. stackbase is the top of the stack
        // and is equal to stk. However, it's working, so I'm not changing it.
-       param.stack_base = (void*)mp->g0->stackbase;
-       param.stack_size = (byte*)stk - (byte*)mp->g0->stackbase;
+       param.stack_base = (void*)mp->g0->stack.hi;
+       param.stack_size = (byte*)stk - (byte*)mp->g0->stack.hi;
 
        param.child_tid = (void*)&mp->procid;
        param.parent_tid = nil;
index 4b382b731b33700ccbed41fdda00a0696dd9751d..99c38d8be62f7beebd49900bbe0a3e232cfa2ce8 100644 (file)
@@ -121,14 +121,17 @@ runtime·newosproc(M *mp, void *stk)
        Sigset oset;
        Pthread tid;
        int32 ret;
+       uint64 size;
 
        USED(stk);
        if(runtime·pthread_attr_init(&attr) != 0)
                runtime·throw("pthread_attr_init");
        if(runtime·pthread_attr_setstack(&attr, 0, 0x200000) != 0)
                runtime·throw("pthread_attr_setstack");
-       if(runtime·pthread_attr_getstack(&attr, (void**)&mp->g0->stackbase, &mp->g0->stacksize) != 0)
+       size = 0;
+       if(runtime·pthread_attr_getstack(&attr, (void**)&mp->g0->stack.hi, &size) != 0)
                runtime·throw("pthread_attr_getstack");        
+       mp->g0->stack.lo = mp->g0->stack.hi - size;
        if(runtime·pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) != 0)
                runtime·throw("pthread_attr_setdetachstate");
 
index 7432981813885437ff3de88e257010ed9e8cb384..125634796388a331e12c94910f1a2725e05c4088 100644 (file)
@@ -192,7 +192,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0
        // change stack
        MOVL    g_m(BX), BX
        MOVL    m_gsignal(BX), BP
-       MOVL    g_stackbase(BP), BP
+       MOVL    (g_stack+stack_hi)(BP), BP
        MOVL    BP, SP
 
        // make room for args and g
index 954c0c27bb5309babb2d9e3e28708a99a19107ab..d0586a5ae9da2fabf090a173dd7a268ba96c9ece 100644 (file)
@@ -190,7 +190,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0
        // change stack
        MOVQ    g_m(BX), BX
        MOVQ    m_gsignal(BX), R10
-       MOVQ    g_stackbase(R10), BP
+       MOVQ    (g_stack+stack_hi)(R10), BP
        MOVQ    BP, SP
 
        // make room for args and g
index 093315c4a46aa069edb8a48f0977e7a511fddda0..0ebdab6ee2e5bdfd2243e6ea925eb2286fb957ba 100644 (file)
@@ -129,10 +129,12 @@ TEXT runtime·tstart_sysvicall(SB),NOSPLIT,$0
 
        // Layout new m scheduler stack on os stack.
        MOVQ    SP, AX
-       MOVQ    AX, g_stackbase(DX)
+       MOVQ    AX, (g_stack+stack_hi)(DX)
        SUBQ    $(0x100000), AX         // stack size
-       MOVQ    AX, g_stackguard(DX)
+       MOVQ    AX, (g_stack+stack_lo)(DX)
+       ADDQ    $const_StackGuard, AX
        MOVQ    AX, g_stackguard0(DX)
+       MOVQ    AX, g_stackguard1(DX)
 
        // Someday the convention will be D is always cleared.
        CLD
index fc19f5650af1bf0602f2840f155361de4de96464..ebcfdf4e0da9b26e687b83741a2be310838f7d02 100644 (file)
@@ -192,8 +192,11 @@ TEXT runtime·externalthreadhandler(SB),NOSPLIT,$0
        LEAL    g_end(SP), BX
        MOVL    BX, g_m(SP)
        LEAL    -4096(SP), CX
-       MOVL    CX, g_stackguard(SP)
-       MOVL    DX, g_stackbase(SP)
+       MOVL    CX, (g_stack+stack_lo)(SP)
+       ADDL    $const_StackGuard, CX
+       MOVL    CX, g_stackguard0(SP)
+       MOVL    CX, g_stackguard1(SP)
+       MOVL    DX, (g_stack+stack_hi)(SP)
 
        PUSHL   16(BP)                  // arg for handler
        CALL    8(BP)
@@ -201,7 +204,7 @@ TEXT runtime·externalthreadhandler(SB),NOSPLIT,$0
 
        get_tls(CX)
        MOVL    g(CX), CX
-       MOVL    g_stackbase(CX), SP
+       MOVL    (g_stack+stack_hi)(CX), SP
        POPL    0x14(FS)
        POPL    DI
        POPL    SI
@@ -293,9 +296,12 @@ TEXT runtime·tstart(SB),NOSPLIT,$0
 
        // Layout new m scheduler stack on os stack.
        MOVL    SP, AX
-       MOVL    AX, g_stackbase(DX)
+       MOVL    AX, (g_stack+stack_hi)(DX)
        SUBL    $(64*1024), AX          // stack size
-       MOVL    AX, g_stackguard(DX)
+       MOVL    AX, (g_stack+stack_lo)(DX)
+       ADDL    $const_StackGuard, AX
+       MOVL    AX, g_stackguard0(DX)
+       MOVL    AX, g_stackguard1(DX)
 
        // Set up tls.
        LEAL    m_tls(CX), SI
index 3d63a04de994f4e647b7007a870026cc0b677066..f701d157ed2fd966955bd4a2e94396c3e09ecc0f 100644 (file)
@@ -229,8 +229,11 @@ TEXT runtime·externalthreadhandler(SB),NOSPLIT,$0
        MOVQ    BX, g_m(SP)
 
        LEAQ    -8192(SP), CX
-       MOVQ    CX, g_stackguard(SP)
-       MOVQ    DX, g_stackbase(SP)
+       MOVQ    CX, (g_stack+stack_lo)(SP)
+       ADDQ    $const_StackGuard, CX
+       MOVQ    CX, g_stackguard0(SP)
+       MOVQ    CX, g_stackguard1(SP)
+       MOVQ    DX, (g_stack+stack_hi)(SP)
 
        PUSHQ   32(BP)                  // arg for handler
        CALL    16(BP)
@@ -238,7 +241,7 @@ TEXT runtime·externalthreadhandler(SB),NOSPLIT,$0
 
        get_tls(CX)
        MOVQ    g(CX), CX
-       MOVQ    g_stackbase(CX), SP
+       MOVQ    (g_stack+stack_hi)(CX), SP
        POPQ    0x28(GS)
        POPQ    DI
        POPQ    SI
@@ -334,9 +337,12 @@ TEXT runtime·tstart_stdcall(SB),NOSPLIT,$0
 
        // Layout new m scheduler stack on os stack.
        MOVQ    SP, AX
-       MOVQ    AX, g_stackbase(DX)
+       MOVQ    AX, (g_stack+stack_hi)(DX)
        SUBQ    $(64*1024), AX          // stack size
-       MOVQ    AX, g_stackguard(DX)
+       MOVQ    AX, (g_stack+stack_lo)(DX)
+       ADDQ    $const_StackGuard, AX
+       MOVQ    AX, g_stackguard0(DX)
+       MOVQ    AX, g_stackguard1(DX)
 
        // Set up tls.
        LEAQ    m_tls(CX), SI