clarify the purpose of this project
[nyanglibc.git] / rt / timer_delete.shared.s
blobc9887b7412f6efbc7aa80662b52b4622a1469e9a
1 .text
2 #APP
3 .symver __timer_delete_new,timer_delete@@GLIBC_2.3.3
4 .symver __timer_delete_old,timer_delete@GLIBC_2.2.5
5 #NO_APP
6 .p2align 4,,15
7 .globl __timer_delete_new
8 .type __timer_delete_new, @function
9 __timer_delete_new:
10 pushq %rbp
11 pushq %rbx
12 movq %rdi, %rdx
13 subq $8, %rsp
14 testq %rdi, %rdi
15 jns .L3
16 leaq (%rdi,%rdi), %rax
17 movl (%rax), %edi
18 .L3:
19 movl $226, %eax
20 #APP
21 # 36 "../sysdeps/unix/sysv/linux/timer_delete.c" 1
22 syscall
24 # 0 "" 2
25 #NO_APP
26 cmpq $-4096, %rax
27 ja .L14
28 testl %eax, %eax
29 movl %eax, %ebp
30 jne .L9
31 testq %rdx, %rdx
32 js .L15
33 .L1:
34 addq $8, %rsp
35 movl %ebp, %eax
36 popq %rbx
37 popq %rbp
38 ret
39 .p2align 4,,10
40 .p2align 3
41 .L15:
42 leaq __active_timer_sigev_thread_lock(%rip), %rdi
43 leaq (%rdx,%rdx), %rbx
44 call pthread_mutex_lock@PLT
45 movq __active_timer_sigev_thread(%rip), %rdx
46 cmpq %rdx, %rbx
47 jne .L6
48 movq 80(%rbx), %rax
49 movq %rax, __active_timer_sigev_thread(%rip)
50 .L7:
51 leaq __active_timer_sigev_thread_lock(%rip), %rdi
52 call pthread_mutex_unlock@PLT
53 movq %rbx, %rdi
54 call free@PLT
55 addq $8, %rsp
56 movl %ebp, %eax
57 popq %rbx
58 popq %rbp
59 ret
60 .p2align 4,,10
61 .p2align 3
62 .L8:
63 cmpq %rax, %rbx
64 je .L16
65 movq %rax, %rdx
66 .L6:
67 movq 80(%rdx), %rax
68 testq %rax, %rax
69 jne .L8
70 jmp .L7
71 .p2align 4,,10
72 .p2align 3
73 .L14:
74 movq errno@gottpoff(%rip), %rdx
75 negl %eax
76 movl $-1, %ebp
77 movl %eax, %fs:(%rdx)
78 addq $8, %rsp
79 movl %ebp, %eax
80 popq %rbx
81 popq %rbp
82 ret
83 .p2align 4,,10
84 .p2align 3
85 .L16:
86 movq 80(%rbx), %rax
87 movq %rax, 80(%rdx)
88 jmp .L7
89 .L9:
90 orl $-1, %ebp
91 jmp .L1
92 .size __timer_delete_new, .-__timer_delete_new
93 .p2align 4,,15
94 .globl __timer_delete_old
95 .type __timer_delete_old, @function
96 __timer_delete_old:
97 pushq %rbp
98 leaq __compat_timer_list(%rip), %rbp
99 pushq %rbx
100 movslq %edi, %rbx
101 subq $8, %rsp
102 movq 0(%rbp,%rbx,8), %rdi
103 call __timer_delete_new@PLT
104 testl %eax, %eax
105 jne .L17
106 movq $0, 0(%rbp,%rbx,8)
107 .L17:
108 addq $8, %rsp
109 popq %rbx
110 popq %rbp
112 .size __timer_delete_old, .-__timer_delete_old
113 .hidden __compat_timer_list
114 .hidden __active_timer_sigev_thread
115 .hidden __active_timer_sigev_thread_lock