1#include "textflag.h"
2
3// actually a function descriptor for _main<>(SB)
4TEXT _rt0_ppc64_linux(SB),NOSPLIT,$0
5	DWORD $_main<>(SB)
6	DWORD $0
7	DWORD $0
8
9TEXT main(SB),NOSPLIT,$0
10	DWORD $_main<>(SB)
11	DWORD $0
12	DWORD $0
13
14TEXT _main<>(SB),NOSPLIT,$-8
15	// In a statically linked binary, the stack contains argc,
16	// argv as argc string pointers followed by a NULL, envv as a
17	// sequence of string pointers followed by a NULL, and auxv.
18	// There is no TLS base pointer.
19	//
20	// TODO(austin): Support ABI v1 dynamic linking entry point
21	MOVD	$runtime·rt0_go(SB), R12
22	MOVD	R12, CTR
23	MOVBZ	runtime·iscgo(SB), R5
24	CMP	R5, $0
25	BEQ	nocgo
26	BR	(CTR)
27nocgo:
28	MOVD	0(R1), R3 // argc
29	ADD	$8, R1, R4 // argv
30	BR	(CTR)
31