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