| // Copyright 2009 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| #include "textflag.h" | |
| TEXT _rt0_386_darwin(SB),NOSPLIT,$8 | |
| MOVL 8(SP), AX | |
| LEAL 12(SP), BX | |
| MOVL AX, 0(SP) | |
| MOVL BX, 4(SP) | |
| CALL main(SB) | |
| INT $3 | |
| // With -buildmode=c-archive, this symbol is called from a global constructor. | |
| TEXT _rt0_386_darwin_lib(SB),NOSPLIT,$0 | |
| PUSHL BP | |
| MOVL SP, BP | |
| PUSHL BX | |
| PUSHL SI | |
| PUSHL DI | |
| MOVL 8(BP), AX | |
| MOVL AX, _rt0_386_darwin_lib_argc<>(SB) | |
| MOVL 12(BP), AX | |
| MOVL AX, _rt0_386_darwin_lib_argv<>(SB) | |
| // Synchronous initialization. | |
| MOVL $runtime·libpreinit(SB), AX | |
| CALL AX | |
| SUBL $12, SP | |
| // Create a new thread to do the runtime initialization and return. | |
| MOVL _cgo_sys_thread_create(SB), AX | |
| TESTL AX, AX | |
| JZ nocgo | |
| MOVL $_rt0_386_darwin_lib_go(SB), BX | |
| MOVL BX, 0(SP) | |
| MOVL $0, 4(SP) | |
| CALL AX | |
| JMP restore | |
| nocgo: | |
| MOVL $0x800000, 0(SP) // stacksize = 8192KB | |
| MOVL $_rt0_386_darwin_lib_go(SB), AX | |
| MOVL AX, 4(SP) // fn | |
| MOVL $0, 8(SP) // fnarg | |
| MOVL $runtime·newosproc0(SB), AX | |
| CALL AX | |
| restore: | |
| ADDL $12, SP | |
| POPL DI | |
| POPL SI | |
| POPL BX | |
| POPL BP | |
| RET | |
| TEXT _rt0_386_darwin_lib_go(SB),NOSPLIT,$12 | |
| MOVL _rt0_386_darwin_lib_argc<>(SB), AX | |
| MOVL AX, 0(SP) | |
| MOVL _rt0_386_darwin_lib_argv<>(SB), AX | |
| MOVL AX, 4(SP) | |
| MOVL $runtime·rt0_go(SB), AX | |
| CALL AX | |
| RET | |
| DATA _rt0_386_darwin_lib_argc<>(SB)/4, $0 | |
| GLOBL _rt0_386_darwin_lib_argc<>(SB),NOPTR, $4 | |
| DATA _rt0_386_darwin_lib_argv<>(SB)/4, $0 | |
| GLOBL _rt0_386_darwin_lib_argv<>(SB),NOPTR, $4 | |
| TEXT main(SB),NOSPLIT,$0 | |
| JMP runtime·rt0_go(SB) |