clarify the purpose of this project
[nyanglibc.git] / signal / sigpause.s
blob80a11c7ad95747e0d41ff70202f526659f8347b3
1 .text
2 .p2align 4,,15
3 .globl __sigpause
4 .hidden __sigpause
5 .type __sigpause, @function
6 __sigpause:
7 pushq %rbp
8 pushq %rbx
9 movl %edi, %ebp
10 subq $136, %rsp
11 testl %esi, %esi
12 jne .L11
13 movl %edi, %eax
14 movq %rsp, %rbx
15 movq %rax, (%rsp)
16 leaq 8(%rbx), %rax
17 .p2align 4,,10
18 .p2align 3
19 .L7:
20 leaq 128(%rsp), %rcx
21 addq $8, %rax
22 movq $0, -8(%rax)
23 cmpq %rcx, %rax
24 jne .L7
25 .L6:
26 movq %rbx, %rdi
27 call __sigsuspend
28 .L1:
29 addq $136, %rsp
30 popq %rbx
31 popq %rbp
32 ret
33 .p2align 4,,10
34 .p2align 3
35 .L11:
36 movq %rsp, %rbx
37 xorl %esi, %esi
38 xorl %edi, %edi
39 movq %rbx, %rdx
40 call __sigprocmask
41 testl %eax, %eax
42 js .L5
43 movl %ebp, %esi
44 movq %rbx, %rdi
45 call sigdelset
46 testl %eax, %eax
47 jns .L6
48 .L5:
49 movl $-1, %eax
50 jmp .L1
51 .size __sigpause, .-__sigpause
52 .p2align 4,,15
53 .weak __default_sigpause
54 .type __default_sigpause, @function
55 __default_sigpause:
56 xorl %esi, %esi
57 jmp __sigpause
58 .size __default_sigpause, .-__default_sigpause
59 .globl __libc_sigpause
60 .set __libc_sigpause,__default_sigpause
61 .weak sigpause
62 .set sigpause,__default_sigpause
63 .p2align 4,,15
64 .weak __xpg_sigpause
65 .type __xpg_sigpause, @function
66 __xpg_sigpause:
67 movl $1, %esi
68 jmp __sigpause
69 .size __xpg_sigpause, .-__xpg_sigpause
70 .globl __libc___xpg_sigpause
71 .set __libc___xpg_sigpause,__xpg_sigpause
72 .hidden sigdelset
73 .hidden __sigprocmask
74 .hidden __sigsuspend