clarify the purpose of this project
[nyanglibc.git] / sunrpc / pmap_rmt.shared.s
blob560c05ecea4f49c0f2e52bf251f9316e540ac46a
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .symver __EI_pmap_rmtcall, pmap_rmtcall@GLIBC_2.2.5
7 .symver __EI_xdr_rmtcall_args, xdr_rmtcall_args@GLIBC_2.2.5
8 .symver __EI_xdr_rmtcallres, xdr_rmtcallres@GLIBC_2.2.5
9 .symver __EI_clnt_broadcast, clnt_broadcast@GLIBC_2.2.5
10 #NO_APP
11 .p2align 4,,15
12 .globl __GI_xdr_rmtcallres
13 .hidden __GI_xdr_rmtcallres
14 .type __GI_xdr_rmtcallres, @function
15 __GI_xdr_rmtcallres:
16 .LFB65:
17 pushq %rbp
18 pushq %rbx
19 leaq __GI_xdr_u_long(%rip), %rcx
20 movq %rsi, %rbx
21 movl $8, %edx
22 movq %rdi, %rbp
23 subq $24, %rsp
24 movq (%rsi), %rax
25 leaq 8(%rsp), %rsi
26 movq %rax, 8(%rsp)
27 call __GI_xdr_reference
28 testl %eax, %eax
29 jne .L2
30 .L4:
31 addq $24, %rsp
32 xorl %eax, %eax
33 popq %rbx
34 popq %rbp
35 ret
36 .p2align 4,,10
37 .p2align 3
38 .L2:
39 leaq 8(%rbx), %rsi
40 movq %rbp, %rdi
41 call __GI_xdr_u_long
42 testl %eax, %eax
43 je .L4
44 movq 8(%rsp), %rax
45 movq 16(%rbx), %rsi
46 movq %rbp, %rdi
47 movq %rax, (%rbx)
48 xorl %eax, %eax
49 call *24(%rbx)
50 addq $24, %rsp
51 popq %rbx
52 popq %rbp
53 ret
54 .LFE65:
55 .size __GI_xdr_rmtcallres, .-__GI_xdr_rmtcallres
56 .globl __EI_xdr_rmtcallres
57 .set __EI_xdr_rmtcallres,__GI_xdr_rmtcallres
58 .p2align 4,,15
59 .globl __GI_xdr_rmtcall_args
60 .hidden __GI_xdr_rmtcall_args
61 .type __GI_xdr_rmtcall_args, @function
62 __GI_xdr_rmtcall_args:
63 .LFB64:
64 pushq %r14
65 pushq %r13
66 pushq %r12
67 pushq %rbp
68 movq %rsi, %rbp
69 pushq %rbx
70 movq %rdi, %rbx
71 subq $16, %rsp
72 call __GI_xdr_u_long
73 testl %eax, %eax
74 jne .L11
75 .L16:
76 xorl %eax, %eax
77 .L10:
78 addq $16, %rsp
79 popq %rbx
80 popq %rbp
81 popq %r12
82 popq %r13
83 popq %r14
84 ret
85 .p2align 4,,10
86 .p2align 3
87 .L11:
88 leaq 8(%rbp), %rsi
89 movq %rbx, %rdi
90 call __GI_xdr_u_long
91 testl %eax, %eax
92 je .L16
93 leaq 16(%rbp), %rsi
94 movq %rbx, %rdi
95 call __GI_xdr_u_long
96 testl %eax, %eax
97 je .L16
98 movq 8(%rbx), %rax
99 movq %rbx, %rdi
100 movq $0, 8(%rsp)
101 call *32(%rax)
102 leaq 8(%rsp), %rsi
103 movq %rbx, %rdi
104 movl %eax, %r13d
105 call __GI_xdr_u_long
106 testl %eax, %eax
107 je .L16
108 movq 8(%rbx), %rax
109 movq %rbx, %rdi
110 call *32(%rax)
111 movq 32(%rbp), %rsi
112 movl %eax, %r12d
113 movq %rbx, %rdi
114 xorl %eax, %eax
115 call *40(%rbp)
116 testl %eax, %eax
117 je .L16
118 movq 8(%rbx), %rax
119 movq %rbx, %rdi
120 call *32(%rax)
121 movl %eax, %eax
122 movl %r13d, %esi
123 movq %rbx, %rdi
124 movq %rax, %r14
125 subq %r12, %rax
126 movq %rax, 24(%rbp)
127 movq 8(%rbx), %rax
128 call *40(%rax)
129 leaq 24(%rbp), %rsi
130 movq %rbx, %rdi
131 call __GI_xdr_u_long
132 testl %eax, %eax
133 je .L16
134 movq 8(%rbx), %rax
135 movl %r14d, %esi
136 movq %rbx, %rdi
137 call *40(%rax)
138 movl $1, %eax
139 jmp .L10
140 .LFE64:
141 .size __GI_xdr_rmtcall_args, .-__GI_xdr_rmtcall_args
142 .globl __EI_xdr_rmtcall_args
143 .set __EI_xdr_rmtcall_args,__GI_xdr_rmtcall_args
144 .p2align 4,,15
145 .globl __GI_pmap_rmtcall
146 .hidden __GI_pmap_rmtcall
147 .type __GI_pmap_rmtcall, @function
148 __GI_pmap_rmtcall:
149 .LFB63:
150 pushq %r15
151 pushq %r14
152 movq %rsi, %r15
153 pushq %r13
154 pushq %r12
155 movq %rcx, %r13
156 pushq %rbp
157 pushq %rbx
158 movq %r8, %rbp
159 movl $28416, %esi
160 movq %r9, %r12
161 movq %rdx, %r14
162 subq $120, %rsp
163 movq timeout(%rip), %rcx
164 movq 8+timeout(%rip), %r8
165 leaq 28(%rsp), %r9
166 movw %si, 2(%rdi)
167 movl $2, %edx
168 movl $100000, %esi
169 movq %rdi, %rbx
170 movl $-1, 28(%rsp)
171 call __GI_clntudp_create
172 testq %rax, %rax
173 je .L32
174 movq %rax, %r10
175 movq 208(%rsp), %rax
176 movq %rbp, 104(%rsp)
177 movq %r15, 64(%rsp)
178 movq %r14, 72(%rsp)
179 leaq 64(%rsp), %rcx
180 movq %r13, 80(%rsp)
181 movq %r12, 96(%rsp)
182 movq %r10, %rdi
183 movq %rax, 32(%rsp)
184 movq 184(%rsp), %rax
185 leaq __GI_xdr_rmtcall_args(%rip), %rdx
186 leaq __GI_xdr_rmtcallres(%rip), %r8
187 movl $5, %esi
188 movq %rax, 48(%rsp)
189 movq 176(%rsp), %rax
190 movq %rax, 56(%rsp)
191 movq 8(%r10), %rax
192 pushq 200(%rsp)
193 pushq 200(%rsp)
194 movq %r10, 24(%rsp)
195 leaq 48(%rsp), %r9
196 call *(%rax)
197 popq %rdx
198 popq %rcx
199 movq 8(%rsp), %r10
200 movl %eax, %ebp
201 movq 8(%r10), %rax
202 movq %r10, %rdi
203 call *32(%rax)
204 .L31:
205 xorl %eax, %eax
206 movw %ax, 2(%rbx)
207 addq $120, %rsp
208 movl %ebp, %eax
209 popq %rbx
210 popq %rbp
211 popq %r12
212 popq %r13
213 popq %r14
214 popq %r15
216 .p2align 4,,10
217 .p2align 3
218 .L32:
219 movl $16, %ebp
220 jmp .L31
221 .LFE63:
222 .size __GI_pmap_rmtcall, .-__GI_pmap_rmtcall
223 .globl __EI_pmap_rmtcall
224 .set __EI_pmap_rmtcall,__GI_pmap_rmtcall
225 .section .rodata.str1.8,"aMS",@progbits,1
226 .align 8
227 .LC0:
228 .string "Cannot create socket for broadcast rpc"
229 .align 8
230 .LC1:
231 .string "Cannot set socket option SO_BROADCAST"
232 .section .rodata.str1.1,"aMS",@progbits,1
233 .LC2:
234 .string "broadcast: getifaddrs"
235 .LC3:
236 .string "Cannot send broadcast packet"
237 .LC4:
238 .string "Broadcast poll problem"
239 .section .rodata.str1.8
240 .align 8
241 .LC5:
242 .string "Cannot receive reply to broadcast"
243 .text
244 .p2align 4,,15
245 .globl __GI_clnt_broadcast
246 .hidden __GI_clnt_broadcast
247 .type __GI_clnt_broadcast, @function
248 __GI_clnt_broadcast:
249 .LFB67:
250 pushq %r15
251 pushq %r14
252 movq %rsi, %r14
253 pushq %r13
254 pushq %r12
255 movq %rcx, %r12
256 pushq %rbp
257 pushq %rbx
258 movq %r8, %rbp
259 subq $10712, %rsp
260 movq %rdi, 8(%rsp)
261 movq %rdx, 16(%rsp)
262 movq %r9, (%rsp)
263 call __GI_authunix_create_default
264 movl $17, %edx
265 movl $2, %esi
266 movl $2, %edi
267 movq %rax, %rbx
268 movl $1, 140(%rsp)
269 call __GI___socket
270 testl %eax, %eax
271 movl %eax, %r13d
272 movl $5, %edx
273 leaq .LC0(%rip), %rsi
274 js .L100
275 leaq 140(%rsp), %rcx
276 movl $4, %r8d
277 movl $6, %edx
278 movl $1, %esi
279 movl %eax, %edi
280 call __setsockopt
281 testl %eax, %eax
282 js .L102
283 leaq 1904(%rsp), %rax
284 movl $1, %esi
285 movl %r13d, 152(%rsp)
286 movw %si, 156(%rsp)
287 movq %rax, %rdi
288 movq %rax, 32(%rsp)
289 call __GI_getifaddrs
290 testl %eax, %eax
291 movl %eax, %r15d
292 jne .L103
293 movq 1904(%rsp), %rdi
294 testq %rdi, %rdi
295 je .L40
296 movq %rdi, %rax
297 jmp .L42
298 .p2align 4,,10
299 .p2align 3
300 .L41:
301 movq (%rax), %rax
302 testq %rax, %rax
303 je .L40
304 .L104:
305 cmpl $19, %r15d
306 jg .L40
307 .L42:
308 movl 16(%rax), %edx
309 andl $3, %edx
310 cmpl $3, %edx
311 jne .L41
312 movq 24(%rax), %rdx
313 testq %rdx, %rdx
314 je .L41
315 cmpw $2, (%rdx)
316 jne .L41
317 movq 40(%rax), %rcx
318 movq (%rax), %rax
319 movslq %r15d, %rdx
320 addl $1, %r15d
321 movl 4(%rcx), %ecx
322 testq %rax, %rax
323 movl %ecx, 320(%rsp,%rdx,4)
324 jne .L104
325 .p2align 4,,10
326 .p2align 3
327 .L40:
328 call __GI_freeifaddrs
329 .L39:
330 leaq 160(%rsp), %rax
331 movq $0, 164(%rsp)
332 movl $0, 172(%rsp)
333 movl $1862270978, 160(%rsp)
334 movq %rax, 24(%rsp)
335 call _create_xid@PLT
336 movq %rax, 48(%rsp)
337 movq %rax, 400(%rsp)
338 xorl %ecx, %ecx
339 movq 16(%rbx), %rax
340 movl $1400, %edx
341 movl $0, 408(%rsp)
342 movdqu (%rbx), %xmm0
343 movq %r14, 280(%rsp)
344 leaq 496(%rsp), %r14
345 movq $2, 416(%rsp)
346 movq %rax, 464(%rsp)
347 movq 40(%rbx), %rax
348 movaps %xmm0, 448(%rsp)
349 movq %r14, %rsi
350 movq $100000, 424(%rsp)
351 movq $2, 432(%rsp)
352 movdqu 24(%rbx), %xmm0
353 movq %rax, 488(%rsp)
354 movq 8(%rsp), %rax
355 movq %rbp, 304(%rsp)
356 leaq 224(%rsp), %rbp
357 movq $5, 440(%rsp)
358 movups %xmm0, 472(%rsp)
359 movq %rax, 272(%rsp)
360 movq 16(%rsp), %rax
361 movq %rbp, %rdi
362 movq %rax, 288(%rsp)
363 leaq 144(%rsp), %rax
364 movq %r12, 312(%rsp)
365 movq %rbp, 8(%rsp)
366 movq %rax, 192(%rsp)
367 movq (%rsp), %rax
368 movq %rax, 216(%rsp)
369 movq 10768(%rsp), %rax
370 movq %rax, 208(%rsp)
371 call __GI_xdrmem_create
372 leaq 400(%rsp), %rax
373 movq %rbp, %rdi
374 movq %rax, %rsi
375 movq %rax, 40(%rsp)
376 call __GI_xdr_callmsg
377 testl %eax, %eax
378 jne .L105
379 .L44:
380 movl $1, %ebp
381 jmp .L36
382 .p2align 4,,10
383 .p2align 3
384 .L102:
385 leaq .LC1(%rip), %rsi
386 movl $5, %edx
387 .L100:
388 leaq __GI__libc_intl_domainname(%rip), %rdi
389 movl $3, %ebp
390 call __GI___dcgettext
391 movq %rax, %rdi
392 call __GI_perror
393 .L36:
394 movl %r13d, %edi
395 call __GI___close
396 movq 56(%rbx), %rax
397 movq %rbx, %rdi
398 call *32(%rax)
399 addq $10712, %rsp
400 movl %ebp, %eax
401 popq %rbx
402 popq %rbp
403 popq %r12
404 popq %r13
405 popq %r14
406 popq %r15
408 .p2align 4,,10
409 .p2align 3
410 .L105:
411 movq 8(%rsp), %rbp
412 leaq 272(%rsp), %rsi
413 movq %rbp, %rdi
414 call __GI_xdr_rmtcall_args
415 testl %eax, %eax
416 je .L44
417 movq 232(%rsp), %rax
418 movq %rbp, %rdi
419 call *32(%rax)
420 movl %eax, 64(%rsp)
421 movq 232(%rsp), %rax
422 movq 56(%rax), %rax
423 testq %rax, %rax
424 je .L45
425 movq %rbp, %rdi
426 call *%rax
427 .L45:
428 leaq 320(%rsp), %rax
429 leaq 192(%rsp), %rsi
430 movq 24(%rsp), %r12
431 movl %r15d, 68(%rsp)
432 movl $4000, 16(%rsp)
433 movq %rax, %rcx
434 movq %rax, 56(%rsp)
435 leal -1(%r15), %eax
436 movq %rsi, 72(%rsp)
437 movq %rbx, 80(%rsp)
438 leaq 4(%rcx,%rax,4), %rax
439 movq %rax, %r15
440 .L53:
441 movl 68(%rsp), %eax
442 movslq 64(%rsp), %rbp
443 movq 56(%rsp), %rbx
444 testl %eax, %eax
445 jne .L47
446 jmp .L60
447 .p2align 4,,10
448 .p2align 3
449 .L46:
450 addq $4, %rbx
451 cmpq %rbx, %r15
452 je .L60
453 .L47:
454 movl (%rbx), %eax
455 xorl %ecx, %ecx
456 movl $16, %r9d
457 movq %r12, %r8
458 movq %rbp, %rdx
459 movq %r14, %rsi
460 movl %r13d, %edi
461 movl %eax, 164(%rsp)
462 call __sendto
463 cmpq %rax, %rbp
464 je .L46
465 movq 80(%rsp), %rbx
466 movl $5, %edx
467 leaq .LC3(%rip), %rsi
468 jmp .L100
469 .p2align 4,,10
470 .p2align 3
471 .L103:
472 leaq .LC2(%rip), %rdi
473 xorl %r15d, %r15d
474 call __GI_perror
475 jmp .L39
476 .p2align 4,,10
477 .p2align 3
478 .L60:
479 cmpq $0, 10776(%rsp)
480 je .L99
481 leaq 152(%rsp), %rax
482 leaq __GI__null_auth(%rip), %rbp
483 movq %rax, 24(%rsp)
484 leaq 176(%rsp), %rax
485 leaq 16(%rbp), %rbx
486 movq %rax, 88(%rsp)
487 leaq 136(%rsp), %rax
488 movq %rax, 96(%rsp)
489 .L49:
490 movq (%rbx), %rax
491 movl 16(%rsp), %edx
492 movl $1, %esi
493 movq 24(%rsp), %rdi
494 movdqu 0(%rbp), %xmm0
495 movq %rax, 440(%rsp)
496 movq 72(%rsp), %rax
497 movups %xmm0, 424(%rsp)
498 movq %rax, 456(%rsp)
499 leaq __GI_xdr_rmtcallres(%rip), %rax
500 movq %rax, 464(%rsp)
501 call __GI___poll
502 cmpl $-1, %eax
503 je .L51
504 testl %eax, %eax
505 jne .L96
506 addl $2000, 16(%rsp)
507 movl 16(%rsp), %eax
508 cmpl $16000, %eax
509 jne .L53
510 movq 80(%rsp), %rbx
511 movl $5, %ebp
512 jmp .L36
513 .p2align 4,,10
514 .p2align 3
515 .L51:
516 movq __libc_errno@gottpoff(%rip), %rax
517 cmpl $4, %fs:(%rax)
518 je .L49
519 movq 80(%rsp), %rbx
520 leaq .LC4(%rip), %rsi
521 movl $5, %edx
522 .p2align 4,,10
523 .p2align 3
524 .L101:
525 leaq __GI__libc_intl_domainname(%rip), %rdi
526 movl $4, %ebp
527 call __GI___dcgettext
528 movq %rax, %rdi
529 call __GI_perror
530 jmp .L36
531 .p2align 4,,10
532 .p2align 3
533 .L96:
534 movq %r15, 104(%rsp)
535 movq %r14, 112(%rsp)
536 movq %r12, 120(%rsp)
537 movq 88(%rsp), %r14
538 movq 32(%rsp), %r12
539 movq 96(%rsp), %r15
540 jmp .L50
541 .p2align 4,,10
542 .p2align 3
543 .L107:
544 movq __libc_errno@gottpoff(%rip), %rax
545 cmpl $4, %fs:(%rax)
546 jne .L106
547 .L50:
548 xorl %ecx, %ecx
549 movq %r15, %r9
550 movq %r14, %r8
551 movl $8800, %edx
552 movq %r12, %rsi
553 movl %r13d, %edi
554 movl $16, 136(%rsp)
555 call __recvfrom
556 testl %eax, %eax
557 js .L107
558 cmpl $7, %eax
559 movq 104(%rsp), %r15
560 movq 112(%rsp), %r14
561 movq 120(%rsp), %r12
562 jbe .L49
563 movq 32(%rsp), %rsi
564 movq 8(%rsp), %rdi
565 movl $1, %ecx
566 movl %eax, %edx
567 call __GI_xdrmem_create
568 movq 40(%rsp), %rsi
569 movq 8(%rsp), %rdi
570 call __GI_xdr_replymsg
571 testl %eax, %eax
572 je .L56
573 movl 48(%rsp), %eax
574 cmpl %eax, 400(%rsp)
575 je .L108
576 .L56:
577 movq 40(%rsp), %rsi
578 movq 8(%rsp), %rdi
579 leaq __GI_xdr_void(%rip), %rax
580 movl $2, 224(%rsp)
581 movq %rax, 464(%rsp)
582 call __GI_xdr_replymsg
583 xorl %eax, %eax
584 movq 10768(%rsp), %rsi
585 movq 8(%rsp), %rdi
586 movq (%rsp), %rcx
587 call *%rcx
588 movq 232(%rsp), %rax
589 movq 56(%rax), %rax
590 testq %rax, %rax
591 je .L49
592 movq 8(%rsp), %rdi
593 call *%rax
594 jmp .L49
595 .p2align 4,,10
596 .p2align 3
597 .L106:
598 movq 80(%rsp), %rbx
599 movl $5, %edx
600 leaq .LC5(%rip), %rsi
601 jmp .L101
602 .L108:
603 movl 416(%rsp), %ecx
604 testl %ecx, %ecx
605 jne .L56
606 movl 448(%rsp), %edx
607 testl %edx, %edx
608 jne .L56
609 movzwl 144(%rsp), %eax
610 movq 88(%rsp), %rsi
611 movq 10768(%rsp), %rdi
612 rolw $8, %ax
613 movw %ax, 178(%rsp)
614 call *10776(%rsp)
615 movq 40(%rsp), %rsi
616 movq 8(%rsp), %rdi
617 movl %eax, 104(%rsp)
618 leaq __GI_xdr_void(%rip), %rax
619 movl $2, 224(%rsp)
620 movq %rax, 464(%rsp)
621 call __GI_xdr_replymsg
622 xorl %eax, %eax
623 movq 10768(%rsp), %rsi
624 movq 8(%rsp), %rdi
625 movq (%rsp), %rcx
626 call *%rcx
627 movq 232(%rsp), %rax
628 movq 56(%rax), %rax
629 testq %rax, %rax
630 je .L57
631 movq 8(%rsp), %rdi
632 call *%rax
633 .L57:
634 cmpl $0, 104(%rsp)
635 je .L49
636 .L99:
637 movq 80(%rsp), %rbx
638 xorl %ebp, %ebp
639 jmp .L36
640 .LFE67:
641 .size __GI_clnt_broadcast, .-__GI_clnt_broadcast
642 .globl __EI_clnt_broadcast
643 .set __EI_clnt_broadcast,__GI_clnt_broadcast
644 .section .rodata.cst16,"aM",@progbits,16
645 .align 16
646 .type timeout, @object
647 .size timeout, 16
648 timeout:
649 .quad 3
650 .quad 0
651 .hidden __recvfrom
652 .hidden __sendto
653 .hidden __setsockopt