cosmopolitan/libc/calls/struct/aarch64.internal.h
Justine Tunney 97b7116953
Hunt down more bugs
After going through the MODE=dbg and MODE=zero build modes, a bunch of
little issues were identified, which have been addressed. Fixing those
issues created even more troubles for the project, because it improved
our ability to detect latent problems which are getting fixed so fast.
2023-07-03 18:43:29 -07:00

44 lines
866 B
C

#ifndef COSMOPOLITAN_LIBC_CALLS_STRUCT_AARCH64_H_
#define COSMOPOLITAN_LIBC_CALLS_STRUCT_AARCH64_H_
#define FPSIMD_MAGIC 0x46508001
#define ESR_MAGIC 0x45535201
#define EXTRA_MAGIC 0x45585401
#define SVE_MAGIC 0x53564501
#if !(__ASSEMBLER__ + __LINKER__ + 0)
COSMOPOLITAN_C_START_
struct _aarch64_ctx {
uint32_t magic;
uint32_t size;
};
struct fpsimd_context {
struct _aarch64_ctx head;
uint32_t fpsr;
uint32_t fpcr;
uint128_t vregs[32];
};
struct esr_context {
struct _aarch64_ctx head;
uint64_t esr;
};
struct extra_context {
struct _aarch64_ctx head;
uint64_t datap;
uint32_t size;
uint32_t __reserved[3];
};
struct sve_context {
struct _aarch64_ctx head;
uint16_t vl;
uint16_t __reserved[3];
};
COSMOPOLITAN_C_END_
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
#endif /* COSMOPOLITAN_LIBC_CALLS_STRUCT_AARCH64_H_ */