clarify the purpose of this project
[nyanglibc.git] / nptl / futex-internal.shared.s
blob7aad55064a4719f3a4e54a089aabad2e5c9d67a0
1 .text
2 .section .rodata.str1.8,"aMS",@progbits,1
3 .align 8
4 .LC0:
5 .string "The futex facility returned an unexpected error code.\n"
6 .text
7 .p2align 4,,15
8 .type __futex_abstimed_wait_common64.part.0, @function
9 __futex_abstimed_wait_common64.part.0:
10 pushq %rbp
11 pushq %rbx
12 movl %esi, %ebp
13 movl %r8d, %esi
14 movq %rcx, %r10
15 subq $40, %rsp
16 cmpl $1, %edx
17 sbbl %eax, %eax
18 andl $256, %eax
19 addl $137, %eax
20 xorl %eax, %esi
21 testb %r9b, %r9b
22 je .L3
23 #APP
24 # 74 "../sysdeps/nptl/futex-internal.c" 1
25 movl %fs:24,%eax
26 # 0 "" 2
27 #NO_APP
28 testl %eax, %eax
29 jne .L4
30 .L3:
31 movl $-1, %r9d
32 xorl %r8d, %r8d
33 movl %ebp, %edx
34 movl $202, %eax
35 #APP
36 # 78 "../sysdeps/nptl/futex-internal.c" 1
37 syscall
39 # 0 "" 2
40 #NO_APP
41 .L6:
42 cmpl $-22, %eax
43 je .L8
44 jle .L32
45 cmpl $-4, %eax
46 je .L8
47 testl %eax, %eax
48 je .L8
49 cmpl $-11, %eax
50 je .L8
51 .L7:
52 leaq .LC0(%rip), %rdi
53 call __libc_fatal@PLT
54 .p2align 4,,10
55 .p2align 3
56 .L32:
57 cmpl $-110, %eax
58 je .L8
59 cmpl $-75, %eax
60 jne .L7
61 .L8:
62 addq $40, %rsp
63 negl %eax
64 popq %rbx
65 popq %rbp
66 ret
67 .p2align 4,,10
68 .p2align 3
69 .L4:
70 movq %rdi, 16(%rsp)
71 movl %esi, 8(%rsp)
72 movq %rcx, 24(%rsp)
73 call __pthread_enable_asynccancel
74 movl $-1, %r9d
75 movl %eax, %ebx
76 xorl %r8d, %r8d
77 movq 24(%rsp), %r10
78 movl %ebp, %edx
79 movl 8(%rsp), %esi
80 movq 16(%rsp), %rdi
81 movl $202, %eax
82 #APP
83 # 74 "../sysdeps/nptl/futex-internal.c" 1
84 syscall
86 # 0 "" 2
87 #NO_APP
88 movl %ebx, %edi
89 movq %rax, 8(%rsp)
90 call __pthread_disable_asynccancel
91 movq 8(%rsp), %rax
92 jmp .L6
93 .size __futex_abstimed_wait_common64.part.0, .-__futex_abstimed_wait_common64.part.0
94 .p2align 4,,15
95 .globl __GI___futex_abstimed_wait64
96 .hidden __GI___futex_abstimed_wait64
97 .type __GI___futex_abstimed_wait64, @function
98 __GI___futex_abstimed_wait64:
99 testq %rcx, %rcx
100 jne .L41
101 .L34:
102 cmpl $1, %edx
103 movl $22, %eax
104 jbe .L42
105 rep ret
106 .p2align 4,,10
107 .p2align 3
108 .L42:
109 xorl %r9d, %r9d
110 jmp __futex_abstimed_wait_common64.part.0
111 .p2align 4,,10
112 .p2align 3
113 .L41:
114 cmpq $0, (%rcx)
115 jns .L34
116 movl $110, %eax
118 .size __GI___futex_abstimed_wait64, .-__GI___futex_abstimed_wait64
119 .globl __futex_abstimed_wait64
120 .set __futex_abstimed_wait64,__GI___futex_abstimed_wait64
121 .p2align 4,,15
122 .globl __GI___futex_abstimed_wait_cancelable64
123 .hidden __GI___futex_abstimed_wait_cancelable64
124 .type __GI___futex_abstimed_wait_cancelable64, @function
125 __GI___futex_abstimed_wait_cancelable64:
126 testq %rcx, %rcx
127 jne .L51
128 .L44:
129 cmpl $1, %edx
130 movl $22, %eax
131 jbe .L52
132 rep ret
133 .p2align 4,,10
134 .p2align 3
135 .L52:
136 movl $1, %r9d
137 jmp __futex_abstimed_wait_common64.part.0
138 .p2align 4,,10
139 .p2align 3
140 .L51:
141 cmpq $0, (%rcx)
142 jns .L44
143 movl $110, %eax
145 .size __GI___futex_abstimed_wait_cancelable64, .-__GI___futex_abstimed_wait_cancelable64
146 .globl __futex_abstimed_wait_cancelable64
147 .set __futex_abstimed_wait_cancelable64,__GI___futex_abstimed_wait_cancelable64
148 .hidden __pthread_disable_asynccancel
149 .hidden __pthread_enable_asynccancel