From 22e9ff95aa5211286a4b421d357b9c1774c2a65e Mon Sep 17 00:00:00 2001 From: Michal Meloun Date: Wed, 5 Dec 2018 10:23:38 +0000 Subject: Implement arm64 version of __tls_get_addr(). MFC after: 1 week --- libexec/rtld-elf/aarch64/reloc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libexec/rtld-elf/aarch64/reloc.c b/libexec/rtld-elf/aarch64/reloc.c index 66d3bdc2d812..9ad306344be0 100644 --- a/libexec/rtld-elf/aarch64/reloc.c +++ b/libexec/rtld-elf/aarch64/reloc.c @@ -517,3 +517,15 @@ allocate_initial_tls(Obj_Entry *objs) asm volatile("msr tpidr_el0, %0" : : "r"(tp)); } + +void * +__tls_get_addr(tls_index* ti) +{ + char *p; + void *_tp; + + __asm __volatile("mrs %0, tpidr_el0" : "=r" (_tp)); + p = tls_get_addr_common((Elf_Addr **)(_tp), ti->ti_module, ti->ti_offset); + + return (p); +} -- cgit v1.2.3