| // Copyright 2016 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" | 
 |  | 
 | // actually a function descriptor for _main<>(SB) | 
 | TEXT _rt0_ppc64_linux(SB),NOSPLIT,$0 | 
 | 	DWORD $_main<>(SB) | 
 | 	DWORD $0 | 
 | 	DWORD $0 | 
 |  | 
 | TEXT main(SB),NOSPLIT,$0 | 
 | 	DWORD $_main<>(SB) | 
 | 	DWORD $0 | 
 | 	DWORD $0 | 
 |  | 
 | TEXT _main<>(SB),NOSPLIT,$-8 | 
 | 	// In a statically linked binary, the stack contains argc, | 
 | 	// argv as argc string pointers followed by a NULL, envv as a | 
 | 	// sequence of string pointers followed by a NULL, and auxv. | 
 | 	// There is no TLS base pointer. | 
 | 	// | 
 | 	// TODO(austin): Support ABI v1 dynamic linking entry point | 
 | 	MOVD	$runtime·rt0_go(SB), R12 | 
 | 	MOVD	R12, CTR | 
 | 	MOVBZ	runtime·iscgo(SB), R5 | 
 | 	CMP	R5, $0 | 
 | 	BEQ	nocgo | 
 | 	BR	(CTR) | 
 | nocgo: | 
 | 	MOVD	0(R1), R3 // argc | 
 | 	ADD	$8, R1, R4 // argv | 
 | 	BR	(CTR) |