clarify the purpose of this project
[nyanglibc.git] / signal / sigtimedwait.shared.s
blob1ee2154e08785facb87ca35e404fcdcb32568717
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .globl __GI___sigtimedwait
9 .hidden __GI___sigtimedwait
10 .type __GI___sigtimedwait, @function
11 __GI___sigtimedwait:
12 pushq %rbp
13 pushq %rbx
14 movq %rsi, %rbx
15 subq $24, %rsp
16 #APP
17 # 28 "../sysdeps/unix/sysv/linux/sigtimedwait.c" 1
18 movl %fs:24,%eax
19 # 0 "" 2
20 #NO_APP
21 testl %eax, %eax
22 jne .L2
23 movl $128, %ecx
24 movl $8, %r10d
25 movl %ecx, %eax
26 #APP
27 # 28 "../sysdeps/unix/sysv/linux/sigtimedwait.c" 1
28 syscall
30 # 0 "" 2
31 #NO_APP
32 cmpq $-4096, %rax
33 movq %rax, %rdx
34 ja .L3
35 cmpl $-1, %eax
36 setne %bpl
37 testq %rsi, %rsi
38 setne %dl
39 andl %edx, %ebp
40 .L4:
41 testb %bpl, %bpl
42 je .L1
43 cmpl $-6, 8(%rbx)
44 je .L12
45 .L1:
46 addq $24, %rsp
47 popq %rbx
48 popq %rbp
49 ret
50 .p2align 4,,10
51 .p2align 3
52 .L12:
53 movl $0, 8(%rbx)
54 addq $24, %rsp
55 popq %rbx
56 popq %rbp
57 ret
58 .p2align 4,,10
59 .p2align 3
60 .L2:
61 movq %rdx, 8(%rsp)
62 movq %rdi, (%rsp)
63 call __libc_enable_asynccancel
64 movl $128, %ecx
65 movl %eax, %r8d
66 movl $8, %r10d
67 movq 8(%rsp), %rdx
68 movq %rbx, %rsi
69 movq (%rsp), %rdi
70 movl %ecx, %eax
71 #APP
72 # 28 "../sysdeps/unix/sysv/linux/sigtimedwait.c" 1
73 syscall
75 # 0 "" 2
76 #NO_APP
77 testq %rbx, %rbx
78 movq %rax, %rdx
79 setne %cl
80 cmpq $-4096, %rax
81 ja .L6
82 cmpl $-1, %eax
83 movl %r8d, %edi
84 movl %eax, (%rsp)
85 setne %bpl
86 andl %ecx, %ebp
87 call __libc_disable_asynccancel
88 movl (%rsp), %eax
89 jmp .L4
90 .p2align 4,,10
91 .p2align 3
92 .L3:
93 movq __libc_errno@gottpoff(%rip), %rax
94 negl %edx
95 movl %edx, %fs:(%rax)
96 movl $-1, %eax
97 jmp .L1
98 .L6:
99 movq __libc_errno@gottpoff(%rip), %rax
100 negl %edx
101 movl %r8d, %edi
102 movl %edx, %fs:(%rax)
103 call __libc_disable_asynccancel
104 movl $-1, %eax
105 jmp .L1
106 .size __GI___sigtimedwait, .-__GI___sigtimedwait
107 .globl __sigtimedwait
108 .set __sigtimedwait,__GI___sigtimedwait
109 .weak sigtimedwait
110 .set sigtimedwait,__sigtimedwait
111 .hidden __libc_disable_asynccancel
112 .hidden __libc_enable_asynccancel