clarify the purpose of this project
[nyanglibc.git] / shadow / putspent.s
blobb0640f60c5a215b75c6c337f29c86fb31310d6c1
1 .text
2 .section .rodata.str1.1,"aMS",@progbits,1
3 .LC0:
4 .string ""
5 .LC1:
6 .string "%s:%s:"
7 .LC2:
8 .string "%ld:"
9 .LC3:
10 .string "%ld"
11 .text
12 .p2align 4,,15
13 .globl putspent
14 .type putspent, @function
15 putspent:
16 .LFB64:
17 pushq %r13
18 pushq %r12
19 pushq %rbp
20 pushq %rbx
21 subq $8, %rsp
22 movq (%rdi), %rax
23 testq %rax, %rax
24 je .L4
25 movq %rdi, %rbp
26 movq %rax, %rdi
27 movq %rsi, %rbx
28 call __nss_valid_field
29 testb %al, %al
30 je .L4
31 movq 8(%rbp), %rdi
32 call __nss_valid_field
33 testb %al, %al
34 je .L4
35 movl (%rbx), %edx
36 andl $32768, %edx
37 jne .L5
38 movq 136(%rbx), %rdi
39 movq %fs:16, %r12
40 cmpq %r12, 8(%rdi)
41 je .L6
42 #APP
43 # 43 "putspent.c" 1
44 movl %fs:24,%eax
45 # 0 "" 2
46 #NO_APP
47 testl %eax, %eax
48 jne .L7
49 movl $1, %edx
50 #APP
51 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
52 cmpxchgl %edx, (%rdi)
53 # 0 "" 2
54 #NO_APP
55 .L8:
56 movq 136(%rbx), %rdi
57 movq %r12, 8(%rdi)
58 .L6:
59 addl $1, 4(%rdi)
60 .L5:
61 movq 8(%rbp), %rcx
62 leaq .LC0(%rip), %rax
63 movq 0(%rbp), %rdx
64 leaq .LC1(%rip), %rsi
65 movq %rbx, %rdi
66 testq %rcx, %rcx
67 cmove %rax, %rcx
68 xorl %eax, %eax
69 call fprintf
70 movq 16(%rbp), %rdx
71 shrl $31, %eax
72 movl %eax, %r12d
73 movl %eax, %r13d
74 cmpq $-1, %rdx
75 jne .L10
76 .L14:
77 movq 40(%rbx), %rax
78 cmpq 48(%rbx), %rax
79 jnb .L93
80 leaq 1(%rax), %rdx
81 movq %rdx, 40(%rbx)
82 movb $58, (%rax)
83 .L15:
84 movq 24(%rbp), %rdx
85 cmpq $-1, %rdx
86 jne .L16
87 .L20:
88 movq 40(%rbx), %rax
89 cmpq 48(%rbx), %rax
90 jnb .L94
91 leaq 1(%rax), %rdx
92 movq %rdx, 40(%rbx)
93 movb $58, (%rax)
94 .L21:
95 movq 32(%rbp), %rdx
96 cmpq $-1, %rdx
97 jne .L22
98 .L26:
99 movq 40(%rbx), %rax
100 cmpq 48(%rbx), %rax
101 jnb .L95
102 leaq 1(%rax), %rdx
103 movq %rdx, 40(%rbx)
104 movb $58, (%rax)
105 .L27:
106 movq 40(%rbp), %rdx
107 cmpq $-1, %rdx
108 jne .L28
109 .L32:
110 movq 40(%rbx), %rax
111 cmpq 48(%rbx), %rax
112 jnb .L96
113 leaq 1(%rax), %rdx
114 movq %rdx, 40(%rbx)
115 movb $58, (%rax)
116 .L33:
117 movq 48(%rbp), %rdx
118 cmpq $-1, %rdx
119 jne .L34
120 .L38:
121 movq 40(%rbx), %rax
122 cmpq 48(%rbx), %rax
123 jnb .L97
124 leaq 1(%rax), %rdx
125 movq %rdx, 40(%rbx)
126 movb $58, (%rax)
127 .L39:
128 movq 56(%rbp), %rdx
129 cmpq $-1, %rdx
130 jne .L40
131 .L44:
132 movq 40(%rbx), %rax
133 cmpq 48(%rbx), %rax
134 jnb .L98
135 leaq 1(%rax), %rdx
136 movq %rdx, 40(%rbx)
137 movb $58, (%rax)
138 .L45:
139 movq 64(%rbp), %rdx
140 cmpq $-1, %rdx
141 je .L46
142 leaq .LC3(%rip), %rsi
143 xorl %eax, %eax
144 movq %rbx, %rdi
145 call fprintf
146 cmpl $-2147483648, %eax
147 sbbl $-1, %r13d
148 .L46:
149 movq 40(%rbx), %rax
150 cmpq 48(%rbx), %rax
151 jnb .L99
152 leaq 1(%rax), %rdx
153 movq %rdx, 40(%rbx)
154 movb $10, (%rax)
155 .L49:
156 testl $32768, (%rbx)
157 jne .L51
158 .L50:
159 movq 136(%rbx), %rdi
160 movl 4(%rdi), %eax
161 subl $1, %eax
162 testl %eax, %eax
163 movl %eax, 4(%rdi)
164 jne .L51
165 movq $0, 8(%rdi)
166 #APP
167 # 91 "putspent.c" 1
168 movl %fs:24,%edx
169 # 0 "" 2
170 #NO_APP
171 testl %edx, %edx
172 jne .L52
173 subl $1, (%rdi)
174 .L51:
175 xorl %eax, %eax
176 testl %r13d, %r13d
177 setne %al
178 negl %eax
179 .L1:
180 addq $8, %rsp
181 popq %rbx
182 popq %rbp
183 popq %r12
184 popq %r13
186 .p2align 4,,10
187 .p2align 3
188 .L10:
189 leaq .LC2(%rip), %rsi
190 xorl %eax, %eax
191 movq %rbx, %rdi
192 call fprintf
193 testl %eax, %eax
194 js .L13
195 cmpq $-1, 16(%rbp)
196 je .L14
197 movq 24(%rbp), %rdx
198 cmpq $-1, %rdx
199 je .L20
200 .L16:
201 leaq .LC2(%rip), %rsi
202 xorl %eax, %eax
203 movq %rbx, %rdi
204 call fprintf
205 testl %eax, %eax
206 js .L19
207 cmpq $-1, 24(%rbp)
208 je .L20
209 movq 32(%rbp), %rdx
210 cmpq $-1, %rdx
211 je .L26
212 .L22:
213 leaq .LC2(%rip), %rsi
214 xorl %eax, %eax
215 movq %rbx, %rdi
216 call fprintf
217 testl %eax, %eax
218 js .L25
219 cmpq $-1, 32(%rbp)
220 je .L26
221 movq 40(%rbp), %rdx
222 cmpq $-1, %rdx
223 je .L32
224 .L28:
225 leaq .LC2(%rip), %rsi
226 xorl %eax, %eax
227 movq %rbx, %rdi
228 call fprintf
229 testl %eax, %eax
230 js .L31
231 cmpq $-1, 40(%rbp)
232 je .L32
233 movq 48(%rbp), %rdx
234 cmpq $-1, %rdx
235 je .L38
236 .L34:
237 leaq .LC2(%rip), %rsi
238 xorl %eax, %eax
239 movq %rbx, %rdi
240 call fprintf
241 testl %eax, %eax
242 js .L37
243 cmpq $-1, 48(%rbp)
244 je .L38
245 movq 56(%rbp), %rdx
246 cmpq $-1, %rdx
247 je .L44
248 .L40:
249 leaq .LC2(%rip), %rsi
250 xorl %eax, %eax
251 movq %rbx, %rdi
252 call fprintf
253 testl %eax, %eax
254 js .L43
255 cmpq $-1, 56(%rbp)
256 jne .L45
257 jmp .L44
258 .p2align 4,,10
259 .p2align 3
260 .L93:
261 movl $58, %esi
262 movq %rbx, %rdi
263 call __overflow
264 cmpl $-1, %eax
265 jne .L15
266 .p2align 4,,10
267 .p2align 3
268 .L13:
269 leal 1(%r12), %r13d
270 jmp .L15
271 .p2align 4,,10
272 .p2align 3
273 .L95:
274 movl $58, %esi
275 movq %rbx, %rdi
276 call __overflow
277 cmpl $-1, %eax
278 jne .L27
279 .p2align 4,,10
280 .p2align 3
281 .L25:
282 addl $1, %r13d
283 jmp .L27
284 .p2align 4,,10
285 .p2align 3
286 .L96:
287 movl $58, %esi
288 movq %rbx, %rdi
289 call __overflow
290 cmpl $-1, %eax
291 jne .L33
292 .p2align 4,,10
293 .p2align 3
294 .L31:
295 addl $1, %r13d
296 jmp .L33
297 .p2align 4,,10
298 .p2align 3
299 .L97:
300 movl $58, %esi
301 movq %rbx, %rdi
302 call __overflow
303 cmpl $-1, %eax
304 jne .L39
305 .p2align 4,,10
306 .p2align 3
307 .L37:
308 addl $1, %r13d
309 jmp .L39
310 .p2align 4,,10
311 .p2align 3
312 .L98:
313 movl $58, %esi
314 movq %rbx, %rdi
315 call __overflow
316 cmpl $-1, %eax
317 jne .L45
318 .p2align 4,,10
319 .p2align 3
320 .L43:
321 addl $1, %r13d
322 jmp .L45
323 .p2align 4,,10
324 .p2align 3
325 .L94:
326 movl $58, %esi
327 movq %rbx, %rdi
328 call __overflow
329 cmpl $-1, %eax
330 jne .L21
331 .p2align 4,,10
332 .p2align 3
333 .L19:
334 addl $1, %r13d
335 jmp .L21
336 .p2align 4,,10
337 .p2align 3
338 .L99:
339 movl $10, %esi
340 movq %rbx, %rdi
341 call __overflow
342 cmpl $-1, %eax
343 jne .L49
344 addl $1, %r13d
345 testl $32768, (%rbx)
346 jne .L1
347 jmp .L50
348 .p2align 4,,10
349 .p2align 3
350 .L4:
351 movq __libc_errno@gottpoff(%rip), %rax
352 movl $22, %fs:(%rax)
353 movl $-1, %eax
354 jmp .L1
355 .p2align 4,,10
356 .p2align 3
357 .L7:
358 movl $1, %ecx
359 movl %edx, %eax
360 lock cmpxchgl %ecx, (%rdi)
361 je .L8
362 call __lll_lock_wait_private
363 jmp .L8
364 .p2align 4,,10
365 .p2align 3
366 .L52:
367 #APP
368 # 91 "putspent.c" 1
369 xchgl %eax, (%rdi)
370 # 0 "" 2
371 #NO_APP
372 cmpl $1, %eax
373 jle .L51
374 xorl %r10d, %r10d
375 movl $1, %edx
376 movl $129, %esi
377 movl $202, %eax
378 #APP
379 # 91 "putspent.c" 1
380 syscall
382 # 0 "" 2
383 #NO_APP
384 jmp .L51
385 .LFE64:
386 .size putspent, .-putspent
387 .hidden __lll_lock_wait_private
388 .hidden __overflow
389 .hidden fprintf
390 .hidden __nss_valid_field