diff options
author | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
---|---|---|
committer | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
commit | 4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch) | |
tree | ebf009bf1376a5a223a915bc27cbbd791a1316bc /src/ldso/x86_64 |
Initial version
Diffstat (limited to 'src/ldso/x86_64')
-rw-r--r-- | src/ldso/x86_64/dlsym.s | 7 | ||||
-rw-r--r-- | src/ldso/x86_64/tlsdesc.s | 23 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/ldso/x86_64/dlsym.s b/src/ldso/x86_64/dlsym.s new file mode 100644 index 0000000..d840b95 --- /dev/null +++ b/src/ldso/x86_64/dlsym.s @@ -0,0 +1,7 @@ +.text +.global dlsym +.hidden __dlsym +.type dlsym,@function +dlsym: + mov (%rsp),%rdx + jmp __dlsym diff --git a/src/ldso/x86_64/tlsdesc.s b/src/ldso/x86_64/tlsdesc.s new file mode 100644 index 0000000..e08f1d7 --- /dev/null +++ b/src/ldso/x86_64/tlsdesc.s @@ -0,0 +1,23 @@ +.text +.global __tlsdesc_static +.hidden __tlsdesc_static +.type __tlsdesc_static,@function +__tlsdesc_static: + mov 8(%rax),%rax + ret + +.global __tlsdesc_dynamic +.hidden __tlsdesc_dynamic +.type __tlsdesc_dynamic,@function +__tlsdesc_dynamic: + mov 8(%rax),%rax + push %rdx + mov %fs:8,%rdx + push %rcx + mov (%rax),%rcx + mov 8(%rax),%rax + add (%rdx,%rcx,8),%rax + pop %rcx + sub %fs:0,%rax + pop %rdx + ret |