// 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_amd64_darwin(SB),NOSPLIT,$-8
	LEAQ	8(SP), SI // argv
	MOVQ	0(SP), DI // argc
	MOVQ	$main(SB), AX
	JMP	AX

// When linking with -shared, this symbol is called when the shared library
// is loaded.
TEXT _rt0_amd64_darwin_lib(SB),NOSPLIT,$40
	MOVQ	DI, _rt0_amd64_darwin_lib_argc<>(SB)
	MOVQ	SI, _rt0_amd64_darwin_lib_argv<>(SB)

	// Create a new thread to do the runtime initialization and return.
	MOVQ	_cgo_sys_thread_create(SB), AX
	TESTQ	AX, AX
	JZ	nocgo
	MOVQ	$_rt0_amd64_darwin_lib_go(SB), DI
	MOVQ	$0, SI
	CALL	AX
	RET
nocgo:
	MOVQ	$8388608, 0(SP)                    // stacksize
	MOVQ	$_rt0_amd64_darwin_lib_go(SB), AX
	MOVQ	AX, 8(SP)                          // fn
	MOVQ	$0, 16(SP)                         // fnarg
	MOVQ	$runtime·newosproc0(SB), AX
	CALL	AX
	RET

TEXT _rt0_amd64_darwin_lib_go(SB),NOSPLIT,$0
	MOVQ	_rt0_amd64_darwin_lib_argc<>(SB), DI
	MOVQ	_rt0_amd64_darwin_lib_argv<>(SB), SI
	MOVQ	$runtime·rt0_go(SB), AX
	JMP	AX

DATA _rt0_amd64_darwin_lib_argc<>(SB)/8, $0
GLOBL _rt0_amd64_darwin_lib_argc<>(SB),NOPTR, $8
DATA _rt0_amd64_darwin_lib_argv<>(SB)/8, $0
GLOBL _rt0_amd64_darwin_lib_argv<>(SB),NOPTR, $8

TEXT main(SB),NOSPLIT,$-8
	MOVQ	$runtime·rt0_go(SB), AX
	JMP	AX
