rt0_linux_ppc64.s (go1.19.src) | : | rt0_linux_ppc64.s (go1.19.1.src) | ||
---|---|---|---|---|
skipping to change at line 25 | skipping to change at line 25 | |||
DWORD $0 | DWORD $0 | |||
DWORD $0 | DWORD $0 | |||
TEXT _main<>(SB),NOSPLIT,$-8 | TEXT _main<>(SB),NOSPLIT,$-8 | |||
// In a statically linked binary, the stack contains argc, | // In a statically linked binary, the stack contains argc, | |||
// argv as argc string pointers followed by a NULL, envv as a | // argv as argc string pointers followed by a NULL, envv as a | |||
// sequence of string pointers followed by a NULL, and auxv. | // sequence of string pointers followed by a NULL, and auxv. | |||
// There is no TLS base pointer. | // There is no TLS base pointer. | |||
// | // | |||
// TODO(austin): Support ABI v1 dynamic linking entry point | // TODO(austin): Support ABI v1 dynamic linking entry point | |||
XOR R0, R0 // Note, newer kernels may not always set R0 to 0. | ||||
MOVD $runtime·rt0_go(SB), R12 | MOVD $runtime·rt0_go(SB), R12 | |||
MOVD R12, CTR | MOVD R12, CTR | |||
MOVBZ runtime·iscgo(SB), R5 | MOVBZ runtime·iscgo(SB), R5 | |||
CMP R5, $0 | CMP R5, $0 | |||
BEQ nocgo | BEQ nocgo | |||
BR (CTR) | BR (CTR) | |||
nocgo: | nocgo: | |||
MOVD 0(R1), R3 // argc | MOVD 0(R1), R3 // argc | |||
ADD $8, R1, R4 // argv | ADD $8, R1, R4 // argv | |||
BR (CTR) | BR (CTR) | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added |