Get aarch64 hello world working

$ m=aarch64-tiny
    $ make -j8 m=$m o/$m/tool/hello/hello.com o/third_party/qemu/qemu-aarch64
    $ o/third_party/qemu/qemu-aarch64 o/$m/tool/hello/hello.com
    hello world
    $ ls -hal o/$m/tool/hello/hello.com
    -rwxr-xr-x 1 jart jart 4.0K May  9 05:04 o/aarch64-tiny/tool/hello/hello.com
This commit is contained in:
Justine Tunney 2023-05-09 02:35:05 -07:00
parent e5e3cdf447
commit ae0ee59614
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
174 changed files with 1454 additions and 851 deletions

View file

@ -48,16 +48,23 @@
.section .initprologue,"ax",@progbits
.type _init,@function
.globl _init
_init: push %rbp
_init:
#ifdef __x86_64__
push %rbp
mov %rsp,%rbp
.profilable
ezlea __init_bss_start,di
ezlea __init_rodata_start,si
#elif defined(__aarch64__)
stp x29,x30,[sp,-16]!
mov x29,sp
#endif
.previous/*
...
decentralized content
...
*/.section .initepilogue,"ax",@progbits
#ifdef __x86_64__
#if IsModeDbg()
_init_check_rdi_rsi:
jmp 2f
@ -71,9 +78,14 @@ _init_check_rdi_rsi:
3: .endfn _init_check_rdi_rsi
#endif
_woot: leave
#elif defined(__aarch64__)
ldp x29,x30,[sp],#16
#endif
ret
.previous
#ifdef __x86_64__
// Decentralized section for packed data structures & initializers.
//
// @see .initro (libc/macros.internal.h)
@ -144,3 +156,5 @@ __text_windows_start:
__text_windows_end:
int3
.previous
#endif /* __x86_64__ */