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

@ -72,9 +72,7 @@ ssize_t write(int fd, const void *buf, size_t size) {
if ((!buf && size) || (IsAsan() && !__asan_is_valid(buf, size))) {
rc = efault();
} else if (fd < g_fds.n && g_fds.p[fd].kind == kFdZip) {
rc = _weaken(__zipos_write)(
(struct ZiposHandle *)(intptr_t)g_fds.p[fd].handle,
&(struct iovec){buf, size}, 1, -1);
rc = enotsup();
} else if (!IsWindows() && !IsMetal()) {
rc = sys_write(fd, buf, size);
} else if (fd >= g_fds.n) {

View file

@ -1021,9 +1021,9 @@ static void __asan_trace(struct AsanTrace *bt, const struct StackFrame *bp) {
}
if (!__asan_checka(SHADOW(bp), sizeof(*bp) >> 3).kind) {
addr = bp->addr;
if (addr == _weakaddr("__gc") && _weakaddr("__gc")) {
if (addr == (uintptr_t)_weaken(__gc) && (uintptr_t)_weaken(__gc)) {
do --gi;
while ((addr = garbage->p[gi].ret) == _weakaddr("__gc"));
while ((addr = garbage->p[gi].ret) == (uintptr_t)_weaken(__gc));
}
bt->p[i] = addr;
} else {

46
libc/intrin/ashlti3.c Normal file
View file

@ -0,0 +1,46 @@
/* clang-format off */
/* ===-- ashlti3.c - Implement __ashlti3 -----------------------------------===
*
* The LLVM Compiler Infrastructure
*
* This file is dual licensed under the MIT and the University of Illinois Open
* Source Licenses. See LICENSE.TXT for details.
*
* ===----------------------------------------------------------------------===
*
* This file implements __ashlti3 for the compiler_rt library.
*
* ===----------------------------------------------------------------------===
*/
#include "third_party/compiler_rt/int_lib.h"
#ifdef CRT_HAS_128BIT
/* Returns: a << b */
/* Precondition: 0 <= b < bits_in_tword */
COMPILER_RT_ABI ti_int
__ashlti3(ti_int a, si_int b)
{
const int bits_in_dword = (int)(sizeof(di_int) * CHAR_BIT);
twords input;
twords result;
input.all = a;
if (b & bits_in_dword) /* bits_in_dword <= b < bits_in_tword */
{
result.s.low = 0;
result.s.high = input.s.low << (b - bits_in_dword);
}
else /* 0 <= b < bits_in_dword */
{
if (b == 0)
return a;
result.s.low = input.s.low << b;
result.s.high = (input.s.high << b) | (input.s.low >> (bits_in_dword - b));
}
return result.all;
}
#endif /* CRT_HAS_128BIT */

View file

@ -36,7 +36,7 @@
* @vforksafe
* @noreturn
*/
privileged wontreturn void _Exit(int exitcode) {
wontreturn void _Exit(int exitcode) {
int i;
STRACE("_Exit(%d)", exitcode);
#ifdef __x86_64__
@ -67,7 +67,7 @@ privileged wontreturn void _Exit(int exitcode) {
for (;;) asm("ud2");
#elif defined(__aarch64__)
register long x0 asm("x0") = exitcode;
asm volatile("mov\tx8,%1\n\t"
asm volatile("mov\tx8,%0\n\t"
"svc\t0"
: /* no outputs */
: "i"(94), "r"(x0)

View file

@ -75,7 +75,7 @@ privileged wontreturn void _Exit1(int rc) {
notpossible;
#elif defined(__aarch64__)
register long r0 asm("x0") = rc;
asm volatile("mov\tx8,%1\n\t"
asm volatile("mov\tx8,%0\n\t"
"svc\t0"
: /* no outputs */
: "i"(93), "r"(r0)

View file

@ -16,9 +16,12 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/dce.h"
#include "libc/runtime/runtime.h"
privileged wontreturn void _Exitr(int exitcode) {
wontreturn void _Exitr(int exitcode) {
#if SupportsWindows()
_restorewintty();
#endif
_Exit(exitcode);
}

View file

@ -1,12 +0,0 @@
#ifndef COSMOPOLITAN_LIBC_BITS_EZLEA_H_
#define COSMOPOLITAN_LIBC_BITS_EZLEA_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
#if __pic__ + __pie__ + __code_model_medium__ + __code_model_large__ + 0 > 1
#define _ezlea(symbol) "lea\t" symbol "(%%rip),%"
#else
#define _ezlea(symbol) "mov\t$" symbol ",%k"
#endif
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_BITS_EZLEA_H_ */

View file

@ -29,7 +29,7 @@
feclearexcept:
#ifdef __x86_64__
# maintain exceptions in the sse mxcsr, clear x87 exceptions
// maintain exceptions in the sse mxcsr, clear x87 exceptions
mov %edi,%ecx
and $0x3f,%ecx
fnstsw %ax

View file

@ -35,7 +35,7 @@ const unsigned char kConsoleHandles[3] = {
};
// Puts cmd.exe gui back the way it was.
privileged noinstrument void _restorewintty(void) {
noinstrument void _restorewintty(void) {
if (!IsWindows()) return;
if (__imp_GetCurrentProcessId() != __pid_exec) return;
for (int i = 0; i < 3; ++i) {

View file

@ -91,7 +91,6 @@ sched_yield:
#elif defined(__aarch64__)
mov x8,#0x7c
svc 0
mov w0,#0
ret
#else

View file

@ -1,33 +1,12 @@
#ifndef COSMOPOLITAN_LIBC_BITS_WEAKEN_H_
#define COSMOPOLITAN_LIBC_BITS_WEAKEN_H_
#include "libc/intrin/ezlea.h"
#if !(__ASSEMBLER__ + __LINKER__ + 0)
#ifndef __STRICT_ANSI__
#define _weaken(symbol) \
({ \
typeof(&symbol) _p = &symbol; \
asm(".weak\t" #symbol : "+r"(_p)); \
_p; \
#define _weaken(symbol) \
__extension__({ \
extern __typeof__(symbol) symbol __attribute__((__weak__)); \
&symbol; \
})
#define _strongaddr(symbolstr) \
({ \
intptr_t waddr; \
asm(_ezlea(symbolstr) "0" : "=r"(waddr)); \
waddr; \
})
#define _weakaddr(symbolstr) \
({ \
intptr_t waddr; \
asm(".weak\t" symbolstr "\n\t" _ezlea(symbolstr) "0" : "=r"(waddr)); \
waddr; \
})
#else
#define _weaken(symbol) symbol
#define _weakaddr(symbolstr) &(symbolstr)
#endif /* __STRICT_ANSI__ */
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_BITS_WEAKEN_H_ */

View file

@ -103,10 +103,10 @@ static int PrintBacktraceUsingAddr2line(int fd, const struct StackFrame *bp) {
return -1;
}
addr = frame->addr;
if (addr == _weakaddr("__gc")) {
if (addr == (uintptr_t)_weaken(__gc)) {
do {
--gi;
} while ((addr = garbage->p[gi].ret) == _weakaddr("__gc"));
} while ((addr = garbage->p[gi].ret) == (uintptr_t)_weaken(__gc));
}
argv[i++] = buf + j;
buf[j++] = '0';

View file

@ -83,10 +83,10 @@ cosmo: push %rbp
call _init
// call constructors
ezlea __init_array_start,ax # static ctors in forward order
.weak __init_array_start # could be called multiple times
ezlea __init_array_end,cx # idempotency recommended
.weak __init_array_end # @see ape/ape.lds
ezlea __init_array_start,ax // static ctors in forward order
.weak __init_array_start // could be called multiple times
ezlea __init_array_end,cx // idempotency recommended
.weak __init_array_end // @see ape/ape.lds
1: cmp %rax,%rcx
je 2f
push %rax
@ -163,8 +163,8 @@ cosmo: push %rbp
// we subtract 8 because the openbsd kernel always checks rsp
// is on a MAP_STACK interval non-inclusively of stack + size
leave
pop %rcx # return address
sub $8,%r8d # openbsd:stackbound
pop %rcx // return address
sub $8,%r8d // openbsd:stackbound
lea (%rax,%r8),%rsp
mov $ape_stack_align,%eax
neg %rax

View file

@ -16,6 +16,7 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/runtime/internal.h"
#include "libc/runtime/runtime.h"
#ifndef __x86_64__
@ -34,8 +35,15 @@ static inline long sys_set_tid_address(int *t) {
}
#endif
typedef int init_f(int argc, char **argv, char **envp, unsigned long *auxv);
extern init_f __strace_init;
extern init_f *__init_array_start[] __attribute__((__weak__));
extern init_f *__init_array_end[] __attribute__((__weak__));
void cosmo(long *sp) {
int argc;
init_f **fp;
char **argv, **envp;
unsigned long *auxv;
argc = *sp;
@ -47,12 +55,19 @@ void cosmo(long *sp) {
break;
}
}
#ifdef SYSDEBUG
argc = __strace_init(argc, argv, envp, auxv);
#endif
__argc = argc;
__argv = argv;
__envp = envp;
__auxv = auxv;
environ = envp;
if (argc) program_invocation_name = argv[0];
_init();
for (fp = __init_array_start; fp < __init_array_end; ++fp) {
(*fp)(argc, argv, envp, auxv);
}
exit(main(argc, argv, envp));
}

View file

@ -16,6 +16,7 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "libc/dce.h"
#include "libc/intrin/strace.internal.h"
#include "libc/intrin/weaken.h"
#include "libc/runtime/internal.h"
@ -44,5 +45,9 @@ wontreturn void exit(int exitcode) {
for (p = __fini_array_end; p > __fini_array_start;) {
((void (*)(void))(*--p))();
}
#if SupportsWindows()
_Exitr(exitcode);
#else
_Exit(exitcode);
#endif
}

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__ */

View file

@ -33,7 +33,6 @@ void __morph_tls(void);
void __enable_tls(void);
void __enable_threads(void) _Hide;
void *__cxa_finalize(void *) _Hide;
void cosmo(int, char **, char **, long (*)[2]) _Hide wontreturn;
void __stack_chk_fail(void) wontreturn relegated;
void __stack_chk_fail_local(void) wontreturn relegated _Hide;
void _jmpstack(void *, void *, ...) _Hide wontreturn;

View file

@ -114,6 +114,8 @@ o//libc/runtime/opensymboltable.greg.o: private \
-Os
# these assembly files are safe to build on aarch64
o/$(MODE)/libc/runtime/init.o: libc/runtime/init.S
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
o/$(MODE)/libc/runtime/vfork.o: libc/runtime/vfork.S
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
o/$(MODE)/libc/runtime/clone-linux.o: libc/runtime/clone-linux.S

View file

@ -66,6 +66,7 @@ __msabi extern typeof(VirtualProtect) *const __imp_VirtualProtect;
extern int64_t __wincrashearly;
extern const char kConsoleHandles[3];
extern void cosmo(int, char **, char **, long (*)[2]) _Hide wontreturn;
static const short kConsoleModes[3] = {
kNtEnableProcessedInput | kNtEnableLineInput | kNtEnableEchoInput |

View file

@ -20,9 +20,20 @@
.text.unlikely
__errfun:
.errno
#ifdef __x86_64__
call __errno_location
mov %ecx,(%rax)
push $-1
pop %rax
.leafepilogue
.leafepilogue // .leafprologue is in errfuns/...
#elif defined(__aarch64__)
stp x19,x30,[sp,#-16]!
mov w19,w0
bl __errno_location
str w19,[x0]
mov x0,#-1
ldp x19,x30,[sp],#16
#else
#error "unsupported architecture"
#endif
.endfn __errfun,globl,hidden

View file

@ -1,7 +1,6 @@
#ifndef COSMOPOLITAN_LIBC_SYSV_ERRFUNS_H_
#define COSMOPOLITAN_LIBC_SYSV_ERRFUNS_H_
#if !(__ASSEMBLER__ + __LINKER__ + 0)
#ifdef __x86_64__
/**
* @fileoverview Optimized error return paths.
@ -296,664 +295,5 @@ intptr_t ehwpoison(void) relegated;
#define ehwpoison() __ERRFUN("ehwpoison")
#endif
#else
#include "libc/errno.h"
static inline intptr_t einval(void) {
errno = EINVAL;
return -1;
}
static inline intptr_t eperm(void) {
errno = EPERM;
return -1;
}
static inline intptr_t enoent(void) {
errno = ENOENT;
return -1;
}
static inline intptr_t esrch(void) {
errno = ESRCH;
return -1;
}
static inline intptr_t eintr(void) {
errno = EINTR;
return -1;
}
static inline intptr_t eio(void) {
errno = EIO;
return -1;
}
static inline intptr_t enxio(void) {
errno = ENXIO;
return -1;
}
static inline intptr_t e2big(void) {
errno = E2BIG;
return -1;
}
static inline intptr_t enoexec(void) {
errno = ENOEXEC;
return -1;
}
static inline intptr_t ebadf(void) {
errno = EBADF;
return -1;
}
static inline intptr_t echild(void) {
errno = ECHILD;
return -1;
}
static inline intptr_t eagain(void) {
errno = EAGAIN;
return -1;
}
static inline intptr_t enomem(void) {
errno = ENOMEM;
return -1;
}
static inline intptr_t eacces(void) {
errno = EACCES;
return -1;
}
static inline intptr_t efault(void) {
errno = EFAULT;
return -1;
}
static inline intptr_t enotblk(void) {
errno = ENOTBLK;
return -1;
}
static inline intptr_t ebusy(void) {
errno = EBUSY;
return -1;
}
static inline intptr_t eexist(void) {
errno = EEXIST;
return -1;
}
static inline intptr_t exdev(void) {
errno = EXDEV;
return -1;
}
static inline intptr_t enodev(void) {
errno = ENODEV;
return -1;
}
static inline intptr_t enotdir(void) {
errno = ENOTDIR;
return -1;
}
static inline intptr_t eisdir(void) {
errno = EISDIR;
return -1;
}
static inline intptr_t enfile(void) {
errno = ENFILE;
return -1;
}
static inline intptr_t emfile(void) {
errno = EMFILE;
return -1;
}
static inline intptr_t enotty(void) {
errno = ENOTTY;
return -1;
}
static inline intptr_t enotsup(void) {
errno = ENOTSUP;
return -1;
}
static inline intptr_t etxtbsy(void) {
errno = ETXTBSY;
return -1;
}
static inline intptr_t efbig(void) {
errno = EFBIG;
return -1;
}
static inline intptr_t enospc(void) {
errno = ENOSPC;
return -1;
}
static inline intptr_t espipe(void) {
errno = ESPIPE;
return -1;
}
static inline intptr_t erofs(void) {
errno = EROFS;
return -1;
}
static inline intptr_t emlink(void) {
errno = EMLINK;
return -1;
}
static inline intptr_t epipe(void) {
errno = EPIPE;
return -1;
}
static inline intptr_t edom(void) {
errno = EDOM;
return -1;
}
static inline intptr_t erange(void) {
errno = ERANGE;
return -1;
}
static inline intptr_t edeadlk(void) {
errno = EDEADLK;
return -1;
}
static inline intptr_t enametoolong(void) {
errno = ENAMETOOLONG;
return -1;
}
static inline intptr_t enolck(void) {
errno = ENOLCK;
return -1;
}
static inline intptr_t enosys(void) {
errno = ENOSYS;
return -1;
}
static inline intptr_t enotempty(void) {
errno = ENOTEMPTY;
return -1;
}
static inline intptr_t eloop(void) {
errno = ELOOP;
return -1;
}
static inline intptr_t enomsg(void) {
errno = ENOMSG;
return -1;
}
static inline intptr_t eidrm(void) {
errno = EIDRM;
return -1;
}
static inline intptr_t echrng(void) {
errno = ECHRNG;
return -1;
}
static inline intptr_t el2nsync(void) {
errno = EL2NSYNC;
return -1;
}
static inline intptr_t el3hlt(void) {
errno = EL3HLT;
return -1;
}
static inline intptr_t el3rst(void) {
errno = EL3RST;
return -1;
}
static inline intptr_t elnrng(void) {
errno = ELNRNG;
return -1;
}
static inline intptr_t eunatch(void) {
errno = EUNATCH;
return -1;
}
static inline intptr_t enocsi(void) {
errno = ENOCSI;
return -1;
}
static inline intptr_t el2hlt(void) {
errno = EL2HLT;
return -1;
}
static inline intptr_t ebade(void) {
errno = EBADE;
return -1;
}
static inline intptr_t ebadr(void) {
errno = EBADR;
return -1;
}
static inline intptr_t exfull(void) {
errno = EXFULL;
return -1;
}
static inline intptr_t enoano(void) {
errno = ENOANO;
return -1;
}
static inline intptr_t ebadrqc(void) {
errno = EBADRQC;
return -1;
}
static inline intptr_t ebadslt(void) {
errno = EBADSLT;
return -1;
}
static inline intptr_t enostr(void) {
errno = ENOSTR;
return -1;
}
static inline intptr_t enodata(void) {
errno = ENODATA;
return -1;
}
static inline intptr_t etime(void) {
errno = ETIME;
return -1;
}
static inline intptr_t enosr(void) {
errno = ENOSR;
return -1;
}
static inline intptr_t enonet(void) {
errno = ENONET;
return -1;
}
static inline intptr_t enopkg(void) {
errno = ENOPKG;
return -1;
}
static inline intptr_t eremote(void) {
errno = EREMOTE;
return -1;
}
static inline intptr_t enolink(void) {
errno = ENOLINK;
return -1;
}
static inline intptr_t eadv(void) {
errno = EADV;
return -1;
}
static inline intptr_t esrmnt(void) {
errno = ESRMNT;
return -1;
}
static inline intptr_t ecomm(void) {
errno = ECOMM;
return -1;
}
static inline intptr_t eproto(void) {
errno = EPROTO;
return -1;
}
static inline intptr_t emultihop(void) {
errno = EMULTIHOP;
return -1;
}
static inline intptr_t edotdot(void) {
errno = EDOTDOT;
return -1;
}
static inline intptr_t ebadmsg(void) {
errno = EBADMSG;
return -1;
}
static inline intptr_t eoverflow(void) {
errno = EOVERFLOW;
return -1;
}
static inline intptr_t enotuniq(void) {
errno = ENOTUNIQ;
return -1;
}
static inline intptr_t ebadfd(void) {
errno = EBADFD;
return -1;
}
static inline intptr_t eremchg(void) {
errno = EREMCHG;
return -1;
}
static inline intptr_t elibacc(void) {
errno = ELIBACC;
return -1;
}
static inline intptr_t elibbad(void) {
errno = ELIBBAD;
return -1;
}
static inline intptr_t elibscn(void) {
errno = ELIBSCN;
return -1;
}
static inline intptr_t elibmax(void) {
errno = ELIBMAX;
return -1;
}
static inline intptr_t elibexec(void) {
errno = ELIBEXEC;
return -1;
}
static inline intptr_t eilseq(void) {
errno = EILSEQ;
return -1;
}
static inline intptr_t erestart(void) {
errno = ERESTART;
return -1;
}
static inline intptr_t estrpipe(void) {
errno = ESTRPIPE;
return -1;
}
static inline intptr_t eusers(void) {
errno = EUSERS;
return -1;
}
static inline intptr_t enotsock(void) {
errno = ENOTSOCK;
return -1;
}
static inline intptr_t edestaddrreq(void) {
errno = EDESTADDRREQ;
return -1;
}
static inline intptr_t emsgsize(void) {
errno = EMSGSIZE;
return -1;
}
static inline intptr_t eprototype(void) {
errno = EPROTOTYPE;
return -1;
}
static inline intptr_t enoprotoopt(void) {
errno = ENOPROTOOPT;
return -1;
}
static inline intptr_t eprotonosupport(void) {
errno = EPROTONOSUPPORT;
return -1;
}
static inline intptr_t esocktnosupport(void) {
errno = ESOCKTNOSUPPORT;
return -1;
}
static inline intptr_t eopnotsupp(void) {
errno = EOPNOTSUPP;
return -1;
}
static inline intptr_t epfnosupport(void) {
errno = EPFNOSUPPORT;
return -1;
}
static inline intptr_t eafnosupport(void) {
errno = EAFNOSUPPORT;
return -1;
}
static inline intptr_t eaddrinuse(void) {
errno = EADDRINUSE;
return -1;
}
static inline intptr_t eaddrnotavail(void) {
errno = EADDRNOTAVAIL;
return -1;
}
static inline intptr_t enetdown(void) {
errno = ENETDOWN;
return -1;
}
static inline intptr_t enetunreach(void) {
errno = ENETUNREACH;
return -1;
}
static inline intptr_t enetreset(void) {
errno = ENETRESET;
return -1;
}
static inline intptr_t econnaborted(void) {
errno = ECONNABORTED;
return -1;
}
static inline intptr_t econnreset(void) {
errno = ECONNRESET;
return -1;
}
static inline intptr_t enobufs(void) {
errno = ENOBUFS;
return -1;
}
static inline intptr_t eisconn(void) {
errno = EISCONN;
return -1;
}
static inline intptr_t enotconn(void) {
errno = ENOTCONN;
return -1;
}
static inline intptr_t eshutdown(void) {
errno = ESHUTDOWN;
return -1;
}
static inline intptr_t etoomanyrefs(void) {
errno = ETOOMANYREFS;
return -1;
}
static inline intptr_t etimedout(void) {
errno = ETIMEDOUT;
return -1;
}
static inline intptr_t econnrefused(void) {
errno = ECONNREFUSED;
return -1;
}
static inline intptr_t ehostdown(void) {
errno = EHOSTDOWN;
return -1;
}
static inline intptr_t ehostunreach(void) {
errno = EHOSTUNREACH;
return -1;
}
static inline intptr_t ealready(void) {
errno = EALREADY;
return -1;
}
static inline intptr_t einprogress(void) {
errno = EINPROGRESS;
return -1;
}
static inline intptr_t estale(void) {
errno = ESTALE;
return -1;
}
static inline intptr_t euclean(void) {
errno = EUCLEAN;
return -1;
}
static inline intptr_t enotnam(void) {
errno = ENOTNAM;
return -1;
}
static inline intptr_t enavail(void) {
errno = ENAVAIL;
return -1;
}
static inline intptr_t eisnam(void) {
errno = EISNAM;
return -1;
}
static inline intptr_t eremoteio(void) {
errno = EREMOTEIO;
return -1;
}
static inline intptr_t edquot(void) {
errno = EDQUOT;
return -1;
}
static inline intptr_t enomedium(void) {
errno = ENOMEDIUM;
return -1;
}
static inline intptr_t emediumtype(void) {
errno = EMEDIUMTYPE;
return -1;
}
static inline intptr_t ecanceled(void) {
errno = ECANCELED;
return -1;
}
static inline intptr_t enokey(void) {
errno = ENOKEY;
return -1;
}
static inline intptr_t ekeyexpired(void) {
errno = EKEYEXPIRED;
return -1;
}
static inline intptr_t ekeyrevoked(void) {
errno = EKEYREVOKED;
return -1;
}
static inline intptr_t ekeyrejected(void) {
errno = EKEYREJECTED;
return -1;
}
static inline intptr_t eownerdead(void) {
errno = EOWNERDEAD;
return -1;
}
static inline intptr_t enotrecoverable(void) {
errno = ENOTRECOVERABLE;
return -1;
}
static inline intptr_t erfkill(void) {
errno = ERFKILL;
return -1;
}
static inline intptr_t ehwpoison(void) {
errno = EHWPOISON;
return -1;
}
#endif /* __x86_64__ */
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_SYSV_ERRFUNS_H_ */

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
e2big: .leafprologue
e2big:
#ifdef __x86_64__
.leafprologue
.profilable
mov E2BIG(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,E2BIG
ldr w0,[x1,#:lo12:E2BIG]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn e2big,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eacces: .leafprologue
eacces:
#ifdef __x86_64__
.leafprologue
.profilable
mov EACCES(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EACCES
ldr w0,[x1,#:lo12:EACCES]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eacces,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
eaddrinuse:
#ifdef __x86_64__
.leafprologue
.profilable
mov EADDRINUSE(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EADDRINUSE
ldr w0,[x1,#:lo12:EADDRINUSE]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eaddrinuse,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
eaddrnotavail:
#ifdef __x86_64__
.leafprologue
.profilable
mov EADDRNOTAVAIL(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EADDRNOTAVAIL
ldr w0,[x1,#:lo12:EADDRNOTAVAIL]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eaddrnotavail,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eadv: .leafprologue
eadv:
#ifdef __x86_64__
.leafprologue
.profilable
mov EADV(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EADV
ldr w0,[x1,#:lo12:EADV]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eadv,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
eafnosupport:
#ifdef __x86_64__
.leafprologue
.profilable
mov EAFNOSUPPORT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EAFNOSUPPORT
ldr w0,[x1,#:lo12:EAFNOSUPPORT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eafnosupport,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eagain: .leafprologue
eagain:
#ifdef __x86_64__
.leafprologue
.profilable
mov EAGAIN(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EAGAIN
ldr w0,[x1,#:lo12:EAGAIN]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eagain,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ealready:
#ifdef __x86_64__
.leafprologue
.profilable
mov EALREADY(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EALREADY
ldr w0,[x1,#:lo12:EALREADY]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ealready,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
ebade: .leafprologue
ebade:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADE(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADE
ldr w0,[x1,#:lo12:EBADE]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebade,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
ebadf: .leafprologue
ebadf:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADF(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADF
ldr w0,[x1,#:lo12:EBADF]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebadf,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
ebadfd: .leafprologue
ebadfd:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADFD(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADFD
ldr w0,[x1,#:lo12:EBADFD]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebadfd,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ebadmsg:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADMSG(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADMSG
ldr w0,[x1,#:lo12:EBADMSG]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebadmsg,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
ebadr: .leafprologue
ebadr:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADR(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADR
ldr w0,[x1,#:lo12:EBADR]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebadr,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ebadrqc:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADRQC(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADRQC
ldr w0,[x1,#:lo12:EBADRQC]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebadrqc,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ebadslt:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBADSLT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBADSLT
ldr w0,[x1,#:lo12:EBADSLT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebadslt,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
ebusy: .leafprologue
ebusy:
#ifdef __x86_64__
.leafprologue
.profilable
mov EBUSY(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EBUSY
ldr w0,[x1,#:lo12:EBUSY]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ebusy,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ecanceled:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECANCELED(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECANCELED
ldr w0,[x1,#:lo12:ECANCELED]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ecanceled,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
echild: .leafprologue
echild:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECHILD(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECHILD
ldr w0,[x1,#:lo12:ECHILD]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn echild,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
echrng: .leafprologue
echrng:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECHRNG(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECHRNG
ldr w0,[x1,#:lo12:ECHRNG]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn echrng,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
ecomm: .leafprologue
ecomm:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECOMM(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECOMM
ldr w0,[x1,#:lo12:ECOMM]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ecomm,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
econnaborted:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECONNABORTED(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECONNABORTED
ldr w0,[x1,#:lo12:ECONNABORTED]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn econnaborted,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
econnrefused:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECONNREFUSED(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECONNREFUSED
ldr w0,[x1,#:lo12:ECONNREFUSED]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn econnrefused,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
econnreset:
#ifdef __x86_64__
.leafprologue
.profilable
mov ECONNRESET(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ECONNRESET
ldr w0,[x1,#:lo12:ECONNRESET]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn econnreset,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
edeadlk:
#ifdef __x86_64__
.leafprologue
.profilable
mov EDEADLK(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EDEADLK
ldr w0,[x1,#:lo12:EDEADLK]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn edeadlk,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
edestaddrreq:
#ifdef __x86_64__
.leafprologue
.profilable
mov EDESTADDRREQ(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EDESTADDRREQ
ldr w0,[x1,#:lo12:EDESTADDRREQ]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn edestaddrreq,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
edom: .leafprologue
edom:
#ifdef __x86_64__
.leafprologue
.profilable
mov EDOM(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EDOM
ldr w0,[x1,#:lo12:EDOM]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn edom,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
edotdot:
#ifdef __x86_64__
.leafprologue
.profilable
mov EDOTDOT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EDOTDOT
ldr w0,[x1,#:lo12:EDOTDOT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn edotdot,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
edquot: .leafprologue
edquot:
#ifdef __x86_64__
.leafprologue
.profilable
mov EDQUOT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EDQUOT
ldr w0,[x1,#:lo12:EDQUOT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn edquot,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eexist: .leafprologue
eexist:
#ifdef __x86_64__
.leafprologue
.profilable
mov EEXIST(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EEXIST
ldr w0,[x1,#:lo12:EEXIST]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eexist,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
efault: .leafprologue
efault:
#ifdef __x86_64__
.leafprologue
.profilable
mov EFAULT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EFAULT
ldr w0,[x1,#:lo12:EFAULT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn efault,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
efbig: .leafprologue
efbig:
#ifdef __x86_64__
.leafprologue
.profilable
mov EFBIG(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EFBIG
ldr w0,[x1,#:lo12:EFBIG]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn efbig,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ehostdown:
#ifdef __x86_64__
.leafprologue
.profilable
mov EHOSTDOWN(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EHOSTDOWN
ldr w0,[x1,#:lo12:EHOSTDOWN]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ehostdown,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ehostunreach:
#ifdef __x86_64__
.leafprologue
.profilable
mov EHOSTUNREACH(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EHOSTUNREACH
ldr w0,[x1,#:lo12:EHOSTUNREACH]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ehostunreach,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ehwpoison:
#ifdef __x86_64__
.leafprologue
.profilable
mov EHWPOISON(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EHWPOISON
ldr w0,[x1,#:lo12:EHWPOISON]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ehwpoison,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eidrm: .leafprologue
eidrm:
#ifdef __x86_64__
.leafprologue
.profilable
mov EIDRM(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EIDRM
ldr w0,[x1,#:lo12:EIDRM]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eidrm,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eilseq: .leafprologue
eilseq:
#ifdef __x86_64__
.leafprologue
.profilable
mov EILSEQ(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EILSEQ
ldr w0,[x1,#:lo12:EILSEQ]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eilseq,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
einprogress:
#ifdef __x86_64__
.leafprologue
.profilable
mov EINPROGRESS(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EINPROGRESS
ldr w0,[x1,#:lo12:EINPROGRESS]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn einprogress,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eintr: .leafprologue
eintr:
#ifdef __x86_64__
.leafprologue
.profilable
mov EINTR(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EINTR
ldr w0,[x1,#:lo12:EINTR]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eintr,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
einval: .leafprologue
einval:
#ifdef __x86_64__
.leafprologue
.profilable
mov EINVAL(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EINVAL
ldr w0,[x1,#:lo12:EINVAL]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn einval,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eio: .leafprologue
eio:
#ifdef __x86_64__
.leafprologue
.profilable
mov EIO(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EIO
ldr w0,[x1,#:lo12:EIO]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eio,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
eisconn:
#ifdef __x86_64__
.leafprologue
.profilable
mov EISCONN(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EISCONN
ldr w0,[x1,#:lo12:EISCONN]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eisconn,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eisdir: .leafprologue
eisdir:
#ifdef __x86_64__
.leafprologue
.profilable
mov EISDIR(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EISDIR
ldr w0,[x1,#:lo12:EISDIR]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eisdir,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eisnam: .leafprologue
eisnam:
#ifdef __x86_64__
.leafprologue
.profilable
mov EISNAM(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EISNAM
ldr w0,[x1,#:lo12:EISNAM]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eisnam,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ekeyexpired:
#ifdef __x86_64__
.leafprologue
.profilable
mov EKEYEXPIRED(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EKEYEXPIRED
ldr w0,[x1,#:lo12:EKEYEXPIRED]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ekeyexpired,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ekeyrejected:
#ifdef __x86_64__
.leafprologue
.profilable
mov EKEYREJECTED(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EKEYREJECTED
ldr w0,[x1,#:lo12:EKEYREJECTED]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ekeyrejected,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
ekeyrevoked:
#ifdef __x86_64__
.leafprologue
.profilable
mov EKEYREVOKED(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EKEYREVOKED
ldr w0,[x1,#:lo12:EKEYREVOKED]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn ekeyrevoked,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
el2hlt: .leafprologue
el2hlt:
#ifdef __x86_64__
.leafprologue
.profilable
mov EL2HLT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EL2HLT
ldr w0,[x1,#:lo12:EL2HLT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn el2hlt,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
el2nsync:
#ifdef __x86_64__
.leafprologue
.profilable
mov EL2NSYNC(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EL2NSYNC
ldr w0,[x1,#:lo12:EL2NSYNC]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn el2nsync,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
el3hlt: .leafprologue
el3hlt:
#ifdef __x86_64__
.leafprologue
.profilable
mov EL3HLT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EL3HLT
ldr w0,[x1,#:lo12:EL3HLT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn el3hlt,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
el3rst: .leafprologue
el3rst:
#ifdef __x86_64__
.leafprologue
.profilable
mov EL3RST(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EL3RST
ldr w0,[x1,#:lo12:EL3RST]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn el3rst,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
elibacc:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELIBACC(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELIBACC
ldr w0,[x1,#:lo12:ELIBACC]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn elibacc,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
elibbad:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELIBBAD(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELIBBAD
ldr w0,[x1,#:lo12:ELIBBAD]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn elibbad,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
elibexec:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELIBEXEC(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELIBEXEC
ldr w0,[x1,#:lo12:ELIBEXEC]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn elibexec,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
elibmax:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELIBMAX(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELIBMAX
ldr w0,[x1,#:lo12:ELIBMAX]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn elibmax,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
elibscn:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELIBSCN(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELIBSCN
ldr w0,[x1,#:lo12:ELIBSCN]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn elibscn,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
elnrng: .leafprologue
elnrng:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELNRNG(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELNRNG
ldr w0,[x1,#:lo12:ELNRNG]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn elnrng,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
eloop: .leafprologue
eloop:
#ifdef __x86_64__
.leafprologue
.profilable
mov ELOOP(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ELOOP
ldr w0,[x1,#:lo12:ELOOP]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn eloop,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
emediumtype:
#ifdef __x86_64__
.leafprologue
.profilable
mov EMEDIUMTYPE(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EMEDIUMTYPE
ldr w0,[x1,#:lo12:EMEDIUMTYPE]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn emediumtype,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
emfile: .leafprologue
emfile:
#ifdef __x86_64__
.leafprologue
.profilable
mov EMFILE(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EMFILE
ldr w0,[x1,#:lo12:EMFILE]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn emfile,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
emlink: .leafprologue
emlink:
#ifdef __x86_64__
.leafprologue
.profilable
mov EMLINK(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EMLINK
ldr w0,[x1,#:lo12:EMLINK]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn emlink,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
emsgsize:
#ifdef __x86_64__
.leafprologue
.profilable
mov EMSGSIZE(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EMSGSIZE
ldr w0,[x1,#:lo12:EMSGSIZE]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn emsgsize,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
emultihop:
#ifdef __x86_64__
.leafprologue
.profilable
mov EMULTIHOP(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,EMULTIHOP
ldr w0,[x1,#:lo12:EMULTIHOP]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn emultihop,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enametoolong:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENAMETOOLONG(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENAMETOOLONG
ldr w0,[x1,#:lo12:ENAMETOOLONG]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enametoolong,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enavail:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENAVAIL(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENAVAIL
ldr w0,[x1,#:lo12:ENAVAIL]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enavail,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enetdown:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENETDOWN(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENETDOWN
ldr w0,[x1,#:lo12:ENETDOWN]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enetdown,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enetreset:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENETRESET(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENETRESET
ldr w0,[x1,#:lo12:ENETRESET]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enetreset,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enetunreach:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENETUNREACH(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENETUNREACH
ldr w0,[x1,#:lo12:ENETUNREACH]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enetunreach,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enfile: .leafprologue
enfile:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENFILE(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENFILE
ldr w0,[x1,#:lo12:ENFILE]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enfile,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enoano: .leafprologue
enoano:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOANO(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOANO
ldr w0,[x1,#:lo12:ENOANO]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enoano,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enobufs:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOBUFS(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOBUFS
ldr w0,[x1,#:lo12:ENOBUFS]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enobufs,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enocsi: .leafprologue
enocsi:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOCSI(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOCSI
ldr w0,[x1,#:lo12:ENOCSI]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enocsi,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enodata:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENODATA(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENODATA
ldr w0,[x1,#:lo12:ENODATA]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enodata,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enodev: .leafprologue
enodev:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENODEV(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENODEV
ldr w0,[x1,#:lo12:ENODEV]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enodev,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enoent: .leafprologue
enoent:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOENT(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOENT
ldr w0,[x1,#:lo12:ENOENT]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enoent,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enoexec:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOEXEC(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOEXEC
ldr w0,[x1,#:lo12:ENOEXEC]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enoexec,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enokey: .leafprologue
enokey:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOKEY(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOKEY
ldr w0,[x1,#:lo12:ENOKEY]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enokey,globl,hidden

View file

@ -1,8 +1,17 @@
#include "libc/macros.internal.h"
.text.unlikely
enolck: .leafprologue
enolck:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOLCK(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOLCK
ldr w0,[x1,#:lo12:ENOLCK]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enolck,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enolink:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOLINK(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOLINK
ldr w0,[x1,#:lo12:ENOLINK]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enolink,globl,hidden

View file

@ -2,8 +2,16 @@
.text.unlikely
enomedium:
#ifdef __x86_64__
.leafprologue
.profilable
mov ENOMEDIUM(%rip),%ecx
jmp __errfun
#elif defined(__aarch64__)
adrp x1,ENOMEDIUM
ldr w0,[x1,#:lo12:ENOMEDIUM]
b __errfun
#else
#error "unsupported architecture"
#endif
.endfn enomedium,globl,hidden

Some files were not shown because too many files have changed in this diff Show more