start.S (568B)
1 /* aarch64 _start: mirror P1/entry-libc.P1pp. 2 * 3 * On entry sp points at [argc][argv0]…[NULL][envp0]…[NULL][auxv]. Convert 4 * to (x0=argc, x1=argv) and run __libc_init(argc, argv) → main(argc, argv) 5 * → exit(rc). If exit returns, spin. 6 */ 7 .text 8 .globl _start 9 _start: 10 ldr x19, [sp] // argc (callee-saved x19) 11 add x20, sp, #8 // argv (callee-saved x20) 12 13 mov x0, x19 14 mov x1, x20 15 bl __libc_init 16 17 mov x0, x19 18 mov x1, x20 19 bl main 20 21 bl exit 22 1: b 1b