.text | |
.global __tlsdesc_static | |
.hidden __tlsdesc_static | |
.type __tlsdesc_static,@function | |
__tlsdesc_static: | |
mov 8(%rax),%rax | |
ret | |
.hidden __tls_get_new | |
.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 | |
cmp %rcx,(%rdx) | |
jc 1f | |
mov 8(%rax),%rax | |
add (%rdx,%rcx,8),%rax | |
2: pop %rcx | |
sub %fs:0,%rax | |
pop %rdx | |
ret | |
1: push %rdi | |
push %rdi | |
push %rsi | |
push %r8 | |
push %r9 | |
push %r10 | |
push %r11 | |
mov %rax,%rdi | |
call __tls_get_new | |
pop %r11 | |
pop %r10 | |
pop %r9 | |
pop %r8 | |
pop %rsi | |
pop %rdi | |
pop %rdi | |
jmp 2b |