mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-15 21:40:05 +00:00
aarch64: morello: update sysdep.h for purecap ABI
Add macro definitions for purecap ABI in sysdep.h.
This commit is contained in:
parent
434271f132
commit
db037e48fb
@ -21,12 +21,19 @@
|
|||||||
|
|
||||||
#include <sysdeps/generic/sysdep.h>
|
#include <sysdeps/generic/sysdep.h>
|
||||||
|
|
||||||
#ifdef __LP64__
|
#if defined __LP64__ || defined __CHERI_PURE_CAPABILITY__
|
||||||
# define AARCH64_R(NAME) R_AARCH64_ ## NAME
|
# define AARCH64_R(NAME) R_AARCH64_ ## NAME
|
||||||
# define PTR_REG(n) x##n
|
# define PTR_REG(n) x##n
|
||||||
# define PTR_LOG_SIZE 3
|
# define PTR_LOG_SIZE 3
|
||||||
# define PTR_ARG(n)
|
# define PTR_ARG(n)
|
||||||
# define SIZE_ARG(n)
|
# define SIZE_ARG(n)
|
||||||
|
# ifdef __CHERI_PURE_CAPABILITY__
|
||||||
|
# define MORELLO_R(NAME) R_MORELLO_ ## NAME
|
||||||
|
# undef PTR_REG
|
||||||
|
# define PTR_REG(n) c##n
|
||||||
|
# undef PTR_LOG_SIZE
|
||||||
|
# define PTR_LOG_SIZE 4
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
# define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME
|
# define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME
|
||||||
# define PTR_REG(n) w##n
|
# define PTR_REG(n) w##n
|
||||||
@ -145,6 +152,9 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
|
|||||||
|
|
||||||
/* If compiled for profiling, call `mcount' at the start of each function. */
|
/* If compiled for profiling, call `mcount' at the start of each function. */
|
||||||
#ifdef PROF
|
#ifdef PROF
|
||||||
|
# ifdef __CHERI_PURE_CAPABILITY__
|
||||||
|
# error mcount profiling is not supported with purecap ABI
|
||||||
|
# endif
|
||||||
# define CALL_MCOUNT \
|
# define CALL_MCOUNT \
|
||||||
str x30, [sp, #-80]!; \
|
str x30, [sp, #-80]!; \
|
||||||
cfi_adjust_cfa_offset (80); \
|
cfi_adjust_cfa_offset (80); \
|
||||||
@ -200,9 +210,15 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI)
|
|||||||
ldr PTR_REG (T), [x##T, #:got_lo12:EXPR]; \
|
ldr PTR_REG (T), [x##T, #:got_lo12:EXPR]; \
|
||||||
OP PTR_REG (R), [x##T];
|
OP PTR_REG (R), [x##T];
|
||||||
|
|
||||||
|
#ifdef __CHERI_PURE_CAPABILITY__
|
||||||
|
/* These are not used in purecap asm. */
|
||||||
|
# undef LDST_PCREL
|
||||||
|
# undef LDST_GLOBAL
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Load an immediate into R.
|
/* Load an immediate into R.
|
||||||
Note R is a register number and not a register name. */
|
Note R is a register number and not a register name. */
|
||||||
#ifdef __LP64__
|
#if defined __LP64__ || defined __CHERI_PURE_CAPABILITY__
|
||||||
# define MOVL(R, NAME) \
|
# define MOVL(R, NAME) \
|
||||||
movz x##R, #:abs_g3:NAME; \
|
movz x##R, #:abs_g3:NAME; \
|
||||||
movk x##R, #:abs_g2_nc:NAME; \
|
movk x##R, #:abs_g2_nc:NAME; \
|
||||||
|
Loading…
Reference in New Issue
Block a user