mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-06 14:10:30 +08:00
AArch64: Remove PTR_REG defines
Remove PTR_REG defines. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
ce2f26a22e
commit
19860fd42e
@ -61,7 +61,7 @@
|
||||
.type call_weak_fn, %function
|
||||
call_weak_fn:
|
||||
adrp x0, :got:PREINIT_FUNCTION
|
||||
ldr PTR_REG (0), [x0, #:got_lo12:PREINIT_FUNCTION]
|
||||
ldr x0, [x0, #:got_lo12:PREINIT_FUNCTION]
|
||||
cbz x0, 1f
|
||||
b PREINIT_FUNCTION
|
||||
1:
|
||||
|
@ -30,11 +30,11 @@ ENTRY (_start)
|
||||
mov x0, sp
|
||||
bl _dl_start
|
||||
/* Returns user entry point in x0. */
|
||||
mov PTR_REG (21), PTR_REG (0)
|
||||
mov x21, x0
|
||||
|
||||
/* Use GL(dl_aarch64_gcs) to set the shadow stack status. */
|
||||
adrp x16, _rtld_local
|
||||
add PTR_REG (16), PTR_REG (16), :lo12:_rtld_local
|
||||
add x16, x16, :lo12:_rtld_local
|
||||
ldr x1, [x16, GL_DL_AARCH64_GCS_OFFSET]
|
||||
cbz x1, L(skip_gcs_enable)
|
||||
|
||||
@ -56,18 +56,18 @@ L(skip_gcs_enable):
|
||||
.type _dl_start_user, %function
|
||||
_dl_start_user:
|
||||
/* Get argc. */
|
||||
ldr PTR_REG (1), [sp]
|
||||
ldr x1, [sp]
|
||||
/* Get argv. */
|
||||
add x2, sp, PTR_SIZE
|
||||
add x2, sp, 8
|
||||
/* Compute envp. */
|
||||
add PTR_REG (3), PTR_REG (2), PTR_REG (1), lsl PTR_LOG_SIZE
|
||||
add PTR_REG (3), PTR_REG (3), PTR_SIZE
|
||||
add x3, x2, x1, lsl 3
|
||||
add x3, x3, 8
|
||||
/* Run the init functions of the loaded modules. */
|
||||
ldr PTR_REG (0), [x16]
|
||||
ldr x0, [x16]
|
||||
bl _dl_init
|
||||
/* Load the finalizer function. */
|
||||
adrp x0, _dl_fini
|
||||
add PTR_REG (0), PTR_REG (0), :lo12:_dl_fini
|
||||
add x0, x0, :lo12:_dl_fini
|
||||
/* Jump to the user's entry point. */
|
||||
mov x16, x21
|
||||
br x16
|
||||
|
@ -75,7 +75,7 @@
|
||||
.align 2
|
||||
_dl_tlsdesc_return:
|
||||
BTI_C
|
||||
ldr PTR_REG (0), [x0, #PTR_SIZE]
|
||||
ldr x0, [x0, 8]
|
||||
RET
|
||||
cfi_endproc
|
||||
.size _dl_tlsdesc_return, .-_dl_tlsdesc_return
|
||||
@ -98,9 +98,9 @@ _dl_tlsdesc_undefweak:
|
||||
BTI_C
|
||||
str x1, [sp, #-16]!
|
||||
cfi_adjust_cfa_offset (16)
|
||||
ldr PTR_REG (0), [x0, #PTR_SIZE]
|
||||
ldr x0, [x0, 8]
|
||||
mrs x1, tpidr_el0
|
||||
sub PTR_REG (0), PTR_REG (0), PTR_REG (1)
|
||||
sub x0, x0, x1
|
||||
ldr x1, [sp], #16
|
||||
cfi_adjust_cfa_offset (-16)
|
||||
RET
|
||||
@ -155,21 +155,21 @@ _dl_tlsdesc_dynamic:
|
||||
cfi_rel_offset (x4, 24)
|
||||
|
||||
mrs x4, tpidr_el0
|
||||
ldr PTR_REG (1), [x0,#TLSDESC_ARG]
|
||||
ldr PTR_REG (0), [x4,#TCBHEAD_DTV]
|
||||
ldr PTR_REG (3), [x1,#TLSDESC_GEN_COUNT]
|
||||
ldr PTR_REG (2), [x0,#DTV_COUNTER]
|
||||
cmp PTR_REG (3), PTR_REG (2)
|
||||
ldr x1, [x0, TLSDESC_ARG]
|
||||
ldr x0, [x4, TCBHEAD_DTV]
|
||||
ldr x3, [x1, TLSDESC_GEN_COUNT]
|
||||
ldr x2, [x0, DTV_COUNTER]
|
||||
cmp x3, x2
|
||||
b.hi 2f
|
||||
/* Load r2 = td->tlsinfo.ti_module and r3 = td->tlsinfo.ti_offset. */
|
||||
ldp PTR_REG (2), PTR_REG (3), [x1,#TLSDESC_MODID]
|
||||
add PTR_REG (0), PTR_REG (0), PTR_REG (2), lsl #(PTR_LOG_SIZE + 1)
|
||||
ldr PTR_REG (0), [x0] /* Load val member of DTV entry. */
|
||||
cmp PTR_REG (0), #TLS_DTV_UNALLOCATED
|
||||
ldp x2, x3, [x1, TLSDESC_MODID]
|
||||
add x0, x0, x2, lsl 4
|
||||
ldr x0, [x0] /* Load val member of DTV entry. */
|
||||
cmp x0, TLS_DTV_UNALLOCATED
|
||||
b.eq 2f
|
||||
cfi_remember_state
|
||||
sub PTR_REG (3), PTR_REG (3), PTR_REG (4)
|
||||
add PTR_REG (0), PTR_REG (0), PTR_REG (3)
|
||||
sub x3, x3, x4
|
||||
add x0, x0, x3
|
||||
1:
|
||||
ldp x3, x4, [sp, #16]
|
||||
ldp x1, x2, [sp], #32
|
||||
@ -220,7 +220,7 @@ _dl_tlsdesc_dynamic:
|
||||
bl HIDDEN_JUMPTARGET(__tls_get_addr)
|
||||
|
||||
mrs x1, tpidr_el0
|
||||
sub PTR_REG (0), PTR_REG (0), PTR_REG (1)
|
||||
sub x0, x0, x1
|
||||
|
||||
RESTORE_Q_REGISTERS
|
||||
|
||||
|
@ -22,12 +22,11 @@
|
||||
#include "dl-link.h"
|
||||
|
||||
#define ip0 x16
|
||||
#define ip0l PTR_REG (16)
|
||||
#define ip1 x17
|
||||
#define lr x30
|
||||
|
||||
/* RELA relocatons are 3 pointers */
|
||||
#define RELA_SIZE (PTR_SIZE * 3)
|
||||
#define RELA_SIZE 24
|
||||
|
||||
.text
|
||||
.globl _dl_runtime_resolve
|
||||
@ -85,7 +84,7 @@ _dl_runtime_resolve:
|
||||
cfi_rel_offset (q1, 80+7*16)
|
||||
|
||||
/* Get pointer to linker struct. */
|
||||
ldr PTR_REG (0), [ip0, #-PTR_SIZE]
|
||||
ldr x0, [ip0, -8]
|
||||
|
||||
/* Prepare to call _dl_fixup(). */
|
||||
ldr x1, [sp, 80+8*16] /* Recover &PLTGOT[n] */
|
||||
@ -209,7 +208,7 @@ _dl_runtime_profile:
|
||||
stp x0, x1, [x29, #OFFSET_RG + DL_OFFSET_RG_SP]
|
||||
|
||||
/* Get pointer to linker struct. */
|
||||
ldr PTR_REG (0), [ip0, #-PTR_SIZE]
|
||||
ldr x0, [ip0, -8]
|
||||
|
||||
/* Prepare to call _dl_profile_fixup(). */
|
||||
ldr x1, [x29, OFFSET_PLTGOTN] /* Recover &PLTGOT[n] */
|
||||
@ -228,8 +227,8 @@ _dl_runtime_profile:
|
||||
add x4, x29, #OFFSET_FS /* address of framesize */
|
||||
bl _dl_profile_fixup
|
||||
|
||||
ldr ip0l, [x29, #OFFSET_FS] /* framesize == 0 */
|
||||
cmp ip0l, #0
|
||||
ldr ip0, [x29, #OFFSET_FS] /* framesize == 0 */
|
||||
cmp ip0, #0
|
||||
bge 1f
|
||||
cfi_remember_state
|
||||
|
||||
@ -271,7 +270,7 @@ _dl_runtime_profile:
|
||||
1:
|
||||
/* The new frame size is in ip0. */
|
||||
|
||||
sub PTR_REG (1), PTR_REG (29), ip0l
|
||||
sub x1, x29, ip0
|
||||
and sp, x1, #0xfffffffffffffff0
|
||||
|
||||
str x0, [x29, #OFFSET_T1]
|
||||
|
@ -70,8 +70,8 @@ ENTRY(_start)
|
||||
mov x5, x0
|
||||
|
||||
/* Load argc and a pointer to argv */
|
||||
ldr PTR_REG (1), [sp, #0]
|
||||
add x2, sp, #PTR_SIZE
|
||||
ldr x1, [sp, #0]
|
||||
add x2, sp, 8
|
||||
|
||||
/* Setup stack limit in argument register */
|
||||
mov x6, sp
|
||||
@ -79,14 +79,16 @@ ENTRY(_start)
|
||||
#ifdef PIC
|
||||
# ifdef SHARED
|
||||
adrp x0, :got:main
|
||||
ldr PTR_REG (0), [x0, #:got_lo12:main]
|
||||
ldr x0, [x0, #:got_lo12:main]
|
||||
# else
|
||||
adrp x0, __wrap_main
|
||||
add x0, x0, :lo12:__wrap_main
|
||||
# endif
|
||||
#else
|
||||
/* Set up the other arguments in registers */
|
||||
MOVL (0, main)
|
||||
movz x0, :abs_g3:main
|
||||
movk x0, :abs_g2_nc:main
|
||||
movk x0, :abs_g1_nc:main
|
||||
movk x0, :abs_g0_nc:main
|
||||
#endif
|
||||
mov x3, #0 /* Used to be init. */
|
||||
mov x4, #0 /* Used to be fini. */
|
||||
|
@ -21,21 +21,7 @@
|
||||
|
||||
#include <sysdeps/generic/sysdep.h>
|
||||
|
||||
#ifdef __LP64__
|
||||
# define AARCH64_R(NAME) R_AARCH64_ ## NAME
|
||||
# define PTR_REG(n) x##n
|
||||
# define PTR_LOG_SIZE 3
|
||||
# define PTR_ARG(n)
|
||||
# define SIZE_ARG(n)
|
||||
#else
|
||||
# define AARCH64_R(NAME) R_AARCH64_P32_ ## NAME
|
||||
# define PTR_REG(n) w##n
|
||||
# define PTR_LOG_SIZE 2
|
||||
# define PTR_ARG(n) mov w##n, w##n
|
||||
# define SIZE_ARG(n) mov w##n, w##n
|
||||
#endif
|
||||
|
||||
#define PTR_SIZE (1<<PTR_LOG_SIZE)
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
/* Strip pointer authentication code from pointer p. */
|
||||
@ -199,28 +185,14 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_GCS)
|
||||
Note R and T are register numbers and not register names. */
|
||||
#define LDST_PCREL(OP, R, T, EXPR) \
|
||||
adrp x##T, EXPR; \
|
||||
OP PTR_REG (R), [x##T, #:lo12:EXPR]; \
|
||||
OP x##R, [x##T, #:lo12:EXPR]; \
|
||||
|
||||
/* Load or store to/from a got-relative EXPR into/from R, using T.
|
||||
Note R and T are register numbers and not register names. */
|
||||
#define LDST_GLOBAL(OP, R, T, EXPR) \
|
||||
adrp x##T, :got:EXPR; \
|
||||
ldr PTR_REG (T), [x##T, #:got_lo12:EXPR]; \
|
||||
OP PTR_REG (R), [x##T];
|
||||
|
||||
/* Load an immediate into R.
|
||||
Note R is a register number and not a register name. */
|
||||
#ifdef __LP64__
|
||||
# define MOVL(R, NAME) \
|
||||
movz PTR_REG (R), #:abs_g3:NAME; \
|
||||
movk PTR_REG (R), #:abs_g2_nc:NAME; \
|
||||
movk PTR_REG (R), #:abs_g1_nc:NAME; \
|
||||
movk PTR_REG (R), #:abs_g0_nc:NAME;
|
||||
#else
|
||||
# define MOVL(R, NAME) \
|
||||
movz PTR_REG (R), #:abs_g1:NAME; \
|
||||
movk PTR_REG (R), #:abs_g0_nc:NAME;
|
||||
#endif
|
||||
ldr x##T, [x##T, #:got_lo12:EXPR]; \
|
||||
OP x##R, [x##T];
|
||||
|
||||
/* Since C identifiers are not normally prefixed with an underscore
|
||||
on this system, the asm identifier `syscall_error' intrudes on the
|
||||
|
@ -105,7 +105,7 @@ L(gcs_done):
|
||||
|
||||
/* Grab the signal mask */
|
||||
/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
|
||||
add PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
|
||||
add x2, x0, UCONTEXT_SIGMASK
|
||||
mov x0, SIG_BLOCK
|
||||
mov x1, 0
|
||||
mov x3, _NSIG8
|
||||
|
Loading…
x
Reference in New Issue
Block a user