From 4abab5ad6c8465a7528ccdd5f49367da05f78bbd Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Tue, 1 Oct 2024 15:47:05 +0200 Subject: Initial version --- src/ldso/i386/dlsym.s | 11 +++++++++++ src/ldso/i386/dlsym_time64.S | 3 +++ src/ldso/i386/tlsdesc.s | 23 +++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 src/ldso/i386/dlsym.s create mode 100644 src/ldso/i386/dlsym_time64.S create mode 100644 src/ldso/i386/tlsdesc.s (limited to 'src/ldso/i386') diff --git a/src/ldso/i386/dlsym.s b/src/ldso/i386/dlsym.s new file mode 100644 index 0000000..097e30c --- /dev/null +++ b/src/ldso/i386/dlsym.s @@ -0,0 +1,11 @@ +.text +.global dlsym +.hidden __dlsym +.type dlsym,@function +dlsym: + push (%esp) + push 12(%esp) + push 12(%esp) + call __dlsym + add $12,%esp + ret diff --git a/src/ldso/i386/dlsym_time64.S b/src/ldso/i386/dlsym_time64.S new file mode 100644 index 0000000..bb2e704 --- /dev/null +++ b/src/ldso/i386/dlsym_time64.S @@ -0,0 +1,3 @@ +#define __dlsym __dlsym_redir_time64 +#define dlsym __dlsym_time64 +#include "dlsym.s" diff --git a/src/ldso/i386/tlsdesc.s b/src/ldso/i386/tlsdesc.s new file mode 100644 index 0000000..32c8176 --- /dev/null +++ b/src/ldso/i386/tlsdesc.s @@ -0,0 +1,23 @@ +.text +.global __tlsdesc_static +.hidden __tlsdesc_static +.type __tlsdesc_static,@function +__tlsdesc_static: + mov 4(%eax),%eax + ret + +.global __tlsdesc_dynamic +.hidden __tlsdesc_dynamic +.type __tlsdesc_dynamic,@function +__tlsdesc_dynamic: + mov 4(%eax),%eax + push %edx + mov %gs:4,%edx + push %ecx + mov (%eax),%ecx + mov 4(%eax),%eax + add (%edx,%ecx,4),%eax + pop %ecx + sub %gs:0,%eax + pop %edx + ret -- cgit v1.2.3