blob: a9b2ab45de9b9587b67b1c6b6466b0628932374a [file] [log] [blame]
/*
* Non-libc syscall hello world for Aarch64 BE
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#define __NR_write 64
#define __NR_exit 93
int write(int fd, char *buf, int len)
{
register int x0 __asm__("x0") = fd;
register char *x1 __asm__("x1") = buf;
register int x2 __asm__("x2") = len;
register int x8 __asm__("x8") = __NR_write;
asm volatile("svc #0" : : "r"(x0), "r"(x1), "r"(x2), "r"(x8));
return len;
}
void exit(int ret)
{
register int x0 __asm__("x0") = ret;
register int x8 __asm__("x8") = __NR_exit;
asm volatile("svc #0" : : "r"(x0), "r"(x8));
__builtin_unreachable();
}
void _start(void)
{
write(1, "Hello World\n", 12);
exit(0);
}