cosmopolitan/examples/package/lib/myasm.S

26 lines
498 B
ArmAsm
Raw Normal View History

#include "libc/macros.internal.h"
// Example assembly function.
//
// @note param agnostic
// @note we love stack frames
// easiest way to do backtraces
// somehow they usually make code faster
// it's convention for keeping stack 16-byte aligned
// cpus still devote much to pushing & popping b/c i386
MyAsm:
#ifdef __x86_64__
push %rbp
2020-06-18 23:14:47 +00:00
mov %rsp,%rbp
call MyPrint2
2020-06-18 23:14:47 +00:00
pop %rbp
#elif defined(__aarch64__)
bl MyPrint2
#else
#error "unsupported architecture"
#endif
2020-06-18 23:14:47 +00:00
ret
.endfn MyAsm,globl