about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-12-03 18:01:57 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-12-03 18:01:57 +0100
commit2ecb87ddc3506fe6fd67b339114c2bd7fbd65d3c (patch)
tree8c78e3984e656b086e096038661c7a985fb29052
parenta34530ebb7b0bfda29145de17b530c703206b6af (diff)
downloadbox64-2ecb87ddc3506fe6fd67b339114c2bd7fbd65d3c.tar.gz
box64-2ecb87ddc3506fe6fd67b339114c2bd7fbd65d3c.zip
Optimized __tls_get_addr wrapped function a bit
-rwxr-xr-xsrc/wrapped/wrappedldlinux.c4
-rwxr-xr-xsrc/wrapped/wrappedldlinux_private.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/wrapped/wrappedldlinux.c b/src/wrapped/wrappedldlinux.c
index 1030fc5f..d88c10c2 100755
--- a/src/wrapped/wrappedldlinux.c
+++ b/src/wrapped/wrappedldlinux.c
@@ -20,10 +20,10 @@ typedef struct my_tls_s {
     unsigned long int   o;
 } my_tls_t;
 
-EXPORT void* my___tls_get_addr(x64emu_t* emu, void* p)
+EXPORT void* my___tls_get_addr(void* p)
 {
     my_tls_t *t = (my_tls_t*)p;
-    void* ret = GetDTatOffset(emu->context, t->i, t->o);
+    void* ret = (void*)((char*)GetTLSPointer(my_context, my_context->elfs[t->i])+t->o);
     return ret;
 }
 
diff --git a/src/wrapped/wrappedldlinux_private.h b/src/wrapped/wrappedldlinux_private.h
index 6bfae5fb..7b863d14 100755
--- a/src/wrapped/wrappedldlinux_private.h
+++ b/src/wrapped/wrappedldlinux_private.h
@@ -20,4 +20,4 @@ DATAB(_r_debug, 40)
 DATA(_rtld_global, sizeof(void*))
 DATA(_rtld_global_ro, sizeof(void*))
 DATA(__stack_chk_guard, sizeof(void*))
-GOM(__tls_get_addr, pFEp)
+GOM(__tls_get_addr, pFp)    //%NoE