Alex Rønne Petersen 553cb3ed46
libc: Add NetBSD system and libc headers from 10.1.
sys/param.h was manually adjusted to not define __NetBSD_Version__ since it will
be defined by the compiler.
2025-05-17 04:41:27 +02:00

52 lines
1.1 KiB
C
Vendored

/* $NetBSD: asm.h,v 1.9 2020/08/02 06:58:16 maxv Exp $ */
#ifndef _AARCH64_ASM_H_
#define _AARCH64_ASM_H_
#if defined(_KERNEL_OPT)
#include "opt_cpuoptions.h"
#endif
#include <arm/asm.h>
#ifdef __aarch64__
#ifdef __ASSEMBLER__
.macro adrl reg, addr
adrp \reg, \addr
add \reg, \reg, #:lo12:\addr
.endm
#endif
#define fp x29
#define lr x30
/*
* Add a speculation barrier after the 'eret'.
* Some aarch64 cpus speculatively execute instructions after 'eret',
* and this potentiates side-channel attacks.
*/
#define ERET \
eret; dsb sy; isb
/*
* ARMv8 options to be made available for the compiler to use. Should be
* inserted at the beginning of the ASM files that need them.
*
* The options are:
* - PAN, needed for the compiler to recognize the PAN register.
* - PAC, needed for the compiler to recognize the key registers.
*/
#ifdef ARMV83_PAC
#define ARMV8_DEFINE_OPTIONS \
.arch armv8.3-a
#elif defined(ARMV81_PAN)
#define ARMV8_DEFINE_OPTIONS \
.arch armv8.1-a
#else
#define ARMV8_DEFINE_OPTIONS /* nothing */
#endif
#endif
#endif /* !_AARCH64_ASM_H_ */