boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

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