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