clarify the purpose of this project
[nyanglibc.git] / posix / getopt.shared.s
blob939162a82b5ae879440718f9ff6996cddf37eb9b
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .type exchange, @function
9 exchange:
10 pushq %r15
11 pushq %r14
12 leaq 8(%rdi), %r11
13 pushq %r13
14 pushq %r12
15 pushq %rbp
16 movslq 48(%rsi), %rbp
17 pushq %rbx
18 movl 44(%rsi), %r12d
19 movl (%rsi), %ebx
20 movq %rbp, %r8
21 movl %r12d, %r9d
22 movl %ebx, %r10d
23 .L2:
24 cmpl %r8d, %r10d
25 jle .L11
26 .L19:
27 cmpl %r8d, %r9d
28 jge .L11
29 movl %r10d, %r13d
30 movl %r8d, %edx
31 subl %r8d, %r13d
32 subl %r9d, %edx
33 cmpl %edx, %r13d
34 jg .L3
35 testl %r13d, %r13d
36 jle .L5
37 leal -1(%r13), %ecx
38 movslq %r9d, %rdx
39 leaq (%rdi,%rdx,8), %rax
40 addq %rdx, %rcx
41 leaq (%r11,%rcx,8), %r14
42 movq %rbp, %rcx
43 subq %rdx, %rcx
44 movq %rcx, %rdx
45 .p2align 4,,10
46 .p2align 3
47 .L8:
48 movq (%rax), %rcx
49 movq (%rax,%rdx,8), %r15
50 movq %r15, (%rax)
51 movq %rcx, (%rax,%rdx,8)
52 addq $8, %rax
53 cmpq %r14, %rax
54 jne .L8
55 .L5:
56 addl %r13d, %r9d
57 cmpl %r8d, %r10d
58 jg .L19
59 .L11:
60 movl %ebx, %eax
61 movl %ebx, 48(%rsi)
62 subl %r8d, %eax
63 addl %eax, %r12d
64 popq %rbx
65 movl %r12d, 44(%rsi)
66 popq %rbp
67 popq %r12
68 popq %r13
69 popq %r14
70 popq %r15
71 ret
72 .p2align 4,,10
73 .p2align 3
74 .L3:
75 movslq %r9d, %rcx
76 subl %edx, %r10d
77 subl $1, %edx
78 addq %rcx, %rdx
79 leaq (%rdi,%rcx,8), %rax
80 leaq (%r11,%rdx,8), %r13
81 movslq %r10d, %rdx
82 subq %rcx, %rdx
83 .p2align 4,,10
84 .p2align 3
85 .L6:
86 movq (%rax), %rcx
87 movq (%rax,%rdx,8), %r14
88 movq %r14, (%rax)
89 movq %rcx, (%rax,%rdx,8)
90 addq $8, %rax
91 cmpq %rax, %r13
92 jne .L6
93 jmp .L2
94 .size exchange, .-exchange
95 .section .rodata.str1.8,"aMS",@progbits,1
96 .align 8
97 .LC0:
98 .string "%s: option '%s%s' is ambiguous\n"
99 .align 8
100 .LC1:
101 .string "%s: option '%s%s' is ambiguous; possibilities:"
102 .section .rodata.str1.1,"aMS",@progbits,1
103 .LC2:
104 .string " '%s%s'"
105 .LC3:
106 .string "\n"
107 .section .rodata.str1.8
108 .align 8
109 .LC4:
110 .string "%s: unrecognized option '%s%s'\n"
111 .align 8
112 .LC5:
113 .string "%s: option '%s%s' doesn't allow an argument\n"
114 .align 8
115 .LC6:
116 .string "%s: option '%s%s' requires an argument\n"
117 .text
118 .p2align 4,,15
119 .type process_long_option, @function
120 process_long_option:
121 pushq %rbp
122 movq %rsp, %rbp
123 pushq %r15
124 pushq %r14
125 pushq %r13
126 pushq %r12
127 pushq %rbx
128 subq $120, %rsp
129 movq 16(%rbp), %rax
130 movl %edi, -124(%rbp)
131 movq %rsi, -112(%rbp)
132 movq %rdx, -120(%rbp)
133 movq %rcx, -64(%rbp)
134 movq %r8, -104(%rbp)
135 movq 32(%rax), %r12
136 movl %r9d, -68(%rbp)
137 movzbl (%r12), %eax
138 movq %r12, -56(%rbp)
139 testb %al, %al
140 movb %al, -69(%rbp)
141 je .L52
142 cmpb $61, %al
143 jne .L22
144 jmp .L52
145 .p2align 4,,10
146 .p2align 3
147 .L104:
148 cmpb $61, %al
149 je .L59
150 .L22:
151 addq $1, %r12
152 movzbl (%r12), %eax
153 testb %al, %al
154 jne .L104
155 .L59:
156 movq %r12, %r14
157 subq -56(%rbp), %r14
158 .L21:
159 movq -64(%rbp), %rbx
160 movq (%rbx), %r15
161 testq %r15, %r15
162 movq %r15, -88(%rbp)
163 je .L24
164 movq %r12, -80(%rbp)
165 movq %r15, %r12
166 movq -56(%rbp), %r15
167 xorl %r13d, %r13d
168 .p2align 4,,10
169 .p2align 3
170 .L27:
171 movq %r14, %rdx
172 movq %r15, %rsi
173 movq %r12, %rdi
174 call __GI_strncmp
175 testl %eax, %eax
176 jne .L25
177 movq %r12, %rdi
178 call __GI_strlen
179 cmpq %r14, %rax
180 je .L102
181 .L25:
182 addq $32, %rbx
183 movq (%rbx), %r12
184 addl $1, %r13d
185 testq %r12, %r12
186 jne .L27
187 movq -80(%rbp), %r12
188 movslq %r13d, %rax
189 movq -64(%rbp), %rcx
190 movq %rax, -144(%rbp)
191 addq $30, %rax
192 movq -88(%rbp), %rdi
193 andq $-16, %rax
194 xorl %r15d, %r15d
195 movl $-1, -128(%rbp)
196 movq %r12, -88(%rbp)
197 movl $0, -80(%rbp)
198 xorl %ebx, %ebx
199 movl $0, -132(%rbp)
200 movq $0, -96(%rbp)
201 movq %rcx, %r12
202 movq %rax, -152(%rbp)
203 .L34:
204 movq -56(%rbp), %rsi
205 movq %r14, %rdx
206 call __GI_strncmp
207 testl %eax, %eax
208 jne .L28
209 testq %rbx, %rbx
210 je .L53
211 movl -68(%rbp), %eax
212 testl %eax, %eax
213 je .L105
214 .L29:
215 movl -80(%rbp), %eax
216 testl %eax, %eax
217 jne .L28
218 movl 24(%rbp), %r11d
219 testl %r11d, %r11d
220 jne .L106
221 cmpq $0, -96(%rbp)
222 movl $1, -80(%rbp)
223 je .L28
224 .L31:
225 movq -96(%rbp), %rax
226 movb $1, (%rax,%r15)
227 .p2align 4,,10
228 .p2align 3
229 .L28:
230 addq $32, %r12
231 movq (%r12), %rdi
232 addq $1, %r15
233 testq %rdi, %rdi
234 jne .L34
235 cmpq $0, -96(%rbp)
236 movq -88(%rbp), %r12
237 jne .L60
238 movl -80(%rbp), %r10d
239 testl %r10d, %r10d
240 jne .L60
241 testq %rbx, %rbx
242 jne .L56
243 .L24:
244 movl -68(%rbp), %esi
245 testl %esi, %esi
246 je .L43
247 movq 16(%rbp), %rax
248 movq -112(%rbp), %rcx
249 movslq (%rax), %rax
250 movq (%rcx,%rax,8), %rax
251 cmpb $45, 1(%rax)
252 je .L43
253 movsbl -69(%rbp), %esi
254 movq -120(%rbp), %rdi
255 call __GI_strchr
256 movq %rax, %rdx
257 movl $-1, %eax
258 testq %rdx, %rdx
259 jne .L20
260 .L43:
261 movl 24(%rbp), %ecx
262 testl %ecx, %ecx
263 jne .L107
264 .L44:
265 movq 16(%rbp), %rax
266 movq $0, 32(%rax)
267 addl $1, (%rax)
268 movl $0, 8(%rax)
269 leaq -40(%rbp), %rsp
270 movl $63, %eax
271 popq %rbx
272 popq %r12
273 popq %r13
274 popq %r14
275 popq %r15
276 popq %rbp
278 .p2align 4,,10
279 .p2align 3
280 .L105:
281 movl 8(%r12), %eax
282 cmpl %eax, 8(%rbx)
283 jne .L29
284 movq 16(%r12), %rax
285 cmpq %rax, 16(%rbx)
286 jne .L29
287 movl 24(%r12), %eax
288 cmpl %eax, 24(%rbx)
289 jne .L29
290 jmp .L28
291 .p2align 4,,10
292 .p2align 3
293 .L102:
294 movq -80(%rbp), %r12
295 .L26:
296 movq 16(%rbp), %rax
297 movq 16(%rbp), %rcx
298 movl (%rax), %edx
299 movq $0, 32(%rcx)
300 leal 1(%rdx), %eax
301 movl %eax, (%rcx)
302 cmpb $0, (%r12)
303 movl 8(%rbx), %ecx
304 je .L45
305 testl %ecx, %ecx
306 je .L46
307 movq 16(%rbp), %rax
308 addq $1, %r12
309 movq %r12, 16(%rax)
310 .L47:
311 movq -104(%rbp), %rax
312 testq %rax, %rax
313 je .L51
314 movl %r13d, (%rax)
315 .L51:
316 movq 16(%rbx), %rdx
317 movl 24(%rbx), %eax
318 testq %rdx, %rdx
319 je .L20
320 movl %eax, (%rdx)
321 xorl %eax, %eax
322 .L20:
323 leaq -40(%rbp), %rsp
324 popq %rbx
325 popq %r12
326 popq %r13
327 popq %r14
328 popq %r15
329 popq %rbp
331 .p2align 4,,10
332 .p2align 3
333 .L45:
334 cmpl $1, %ecx
335 jne .L47
336 cmpl -124(%rbp), %eax
337 jge .L49
338 movq 16(%rbp), %rcx
339 addl $2, %edx
340 cltq
341 movl %edx, (%rcx)
342 movq -112(%rbp), %rcx
343 movq (%rcx,%rax,8), %rax
344 movq 16(%rbp), %rcx
345 movq %rax, 16(%rcx)
346 jmp .L47
347 .p2align 4,,10
348 .p2align 3
349 .L53:
350 movl %r15d, -128(%rbp)
351 movq %r12, %rbx
352 jmp .L28
353 .p2align 4,,10
354 .p2align 3
355 .L106:
356 cmpq $0, -96(%rbp)
357 jne .L31
358 movq -144(%rbp), %rdi
359 call __GI___libc_alloca_cutoff
360 cmpl $4096, %r13d
361 jle .L32
362 testl %eax, %eax
363 je .L108
364 .L32:
365 subq -152(%rbp), %rsp
366 leaq 15(%rsp), %rax
367 andq $-16, %rax
368 movq %rax, -96(%rbp)
369 .L33:
370 movq -144(%rbp), %rdx
371 movq -96(%rbp), %rdi
372 xorl %esi, %esi
373 call __GI_memset@PLT
374 movslq -128(%rbp), %rax
375 movq -96(%rbp), %rcx
376 movb $1, (%rcx,%rax)
377 jmp .L31
378 .p2align 4,,10
379 .p2align 3
380 .L107:
381 movq -112(%rbp), %rax
382 leaq .LC4(%rip), %rsi
383 leaq __GI__libc_intl_domainname(%rip), %rdi
384 movl $5, %edx
385 movq (%rax), %rbx
386 call __GI___dcgettext
387 movq %rax, %rsi
388 movq stderr@GOTPCREL(%rip), %rax
389 movq -56(%rbp), %r8
390 movq 32(%rbp), %rcx
391 movq %rbx, %rdx
392 movq (%rax), %rdi
393 xorl %eax, %eax
394 call __fxprintf_nocancel
395 jmp .L44
396 .p2align 4,,10
397 .p2align 3
398 .L60:
399 movl 24(%rbp), %r9d
400 testl %r9d, %r9d
401 jne .L109
402 .L37:
403 movl -132(%rbp), %edi
404 testl %edi, %edi
405 je .L41
406 movq -96(%rbp), %rdi
407 call free@PLT
408 .L41:
409 movq -56(%rbp), %rbx
410 movq %rbx, %rdi
411 call __GI_strlen
412 movq 16(%rbp), %rcx
413 addq %rbx, %rax
414 movq %rax, 32(%rcx)
415 addl $1, (%rcx)
416 movl $63, %eax
417 movl $0, 8(%rcx)
418 jmp .L20
419 .p2align 4,,10
420 .p2align 3
421 .L52:
422 movq -56(%rbp), %r12
423 xorl %r14d, %r14d
424 jmp .L21
425 .p2align 4,,10
426 .p2align 3
427 .L46:
428 movl 24(%rbp), %edx
429 testl %edx, %edx
430 je .L48
431 movq -112(%rbp), %rax
432 leaq .LC5(%rip), %rsi
433 leaq __GI__libc_intl_domainname(%rip), %rdi
434 movl $5, %edx
435 movq (%rbx), %r13
436 movq (%rax), %r12
437 call __GI___dcgettext
438 movq %rax, %rsi
439 movq stderr@GOTPCREL(%rip), %rax
440 movq 32(%rbp), %rcx
441 movq %r13, %r8
442 movq %r12, %rdx
443 movq (%rax), %rdi
444 xorl %eax, %eax
445 call __fxprintf_nocancel
446 .L48:
447 movl 24(%rbx), %eax
448 movq 16(%rbp), %rcx
449 movl %eax, 8(%rcx)
450 movl $63, %eax
451 jmp .L20
452 .L49:
453 movl 24(%rbp), %eax
454 testl %eax, %eax
455 jne .L110
456 .L50:
457 movl 24(%rbx), %eax
458 movq 16(%rbp), %rcx
459 movl %eax, 8(%rcx)
460 movq -120(%rbp), %rax
461 cmpb $58, (%rax)
462 setne %al
463 movzbl %al, %eax
464 leal 58(%rax,%rax,4), %eax
465 jmp .L20
466 .L109:
467 movl -80(%rbp), %r8d
468 movq -112(%rbp), %rax
469 movl $5, %edx
470 testl %r8d, %r8d
471 movq (%rax), %r12
472 je .L38
473 leaq .LC0(%rip), %rsi
474 leaq __GI__libc_intl_domainname(%rip), %rdi
475 call __GI___dcgettext
476 movq %rax, %rsi
477 movq stderr@GOTPCREL(%rip), %rax
478 movq -56(%rbp), %r8
479 movq 32(%rbp), %rcx
480 movq %r12, %rdx
481 movq (%rax), %rdi
482 xorl %eax, %eax
483 call __fxprintf_nocancel
484 movq 16(%rbp), %rax
485 movq 32(%rax), %rax
486 movq %rax, -56(%rbp)
487 jmp .L37
488 .L110:
489 movq -112(%rbp), %rax
490 leaq .LC6(%rip), %rsi
491 leaq __GI__libc_intl_domainname(%rip), %rdi
492 movl $5, %edx
493 movq (%rbx), %r13
494 movq (%rax), %r12
495 call __GI___dcgettext
496 movq %rax, %rsi
497 movq stderr@GOTPCREL(%rip), %rax
498 movq 32(%rbp), %rcx
499 movq %r13, %r8
500 movq %r12, %rdx
501 movq (%rax), %rdi
502 xorl %eax, %eax
503 call __fxprintf_nocancel
504 jmp .L50
505 .L38:
506 leaq .LC1(%rip), %rsi
507 leaq __GI__libc_intl_domainname(%rip), %rdi
508 call __GI___dcgettext
509 movq stderr@GOTPCREL(%rip), %rbx
510 movq 32(%rbp), %rcx
511 movq %r12, %rdx
512 movq -56(%rbp), %r8
513 movq %rax, %rsi
514 xorl %eax, %eax
515 leaq .LC2(%rip), %r12
516 movq (%rbx), %rdi
517 call __fxprintf_nocancel
518 movq -96(%rbp), %rcx
519 leal -1(%r13), %eax
520 movq (%rbx), %rdi
521 movq -64(%rbp), %r15
522 movq %rcx, %r14
523 leaq 1(%rcx,%rax), %r13
524 jmp .L40
525 .p2align 4,,10
526 .p2align 3
527 .L39:
528 addq $1, %r14
529 addq $32, %r15
530 cmpq %r14, %r13
531 je .L111
532 .L40:
533 cmpb $0, (%r14)
534 je .L39
535 movq (%r15), %rcx
536 movq 32(%rbp), %rdx
537 movq %r12, %rsi
538 xorl %eax, %eax
539 call __fxprintf_nocancel
540 movq (%rbx), %rdi
541 jmp .L39
542 .L111:
543 leaq .LC3(%rip), %rsi
544 xorl %eax, %eax
545 call __fxprintf_nocancel
546 movq 16(%rbp), %rax
547 movq 32(%rax), %rax
548 movq %rax, -56(%rbp)
549 jmp .L37
550 .L108:
551 movq -144(%rbp), %rdi
552 call malloc@PLT
553 testq %rax, %rax
554 movq %rax, -96(%rbp)
555 je .L54
556 movl $1, -132(%rbp)
557 jmp .L33
558 .L56:
559 movl -128(%rbp), %r13d
560 jmp .L26
561 .L54:
562 movl $1, -80(%rbp)
563 jmp .L28
564 .size process_long_option, .-process_long_option
565 .section .rodata.str1.1
566 .LC7:
567 .string "POSIXLY_CORRECT"
568 .LC8:
569 .string "--"
570 .LC9:
571 .string "-"
572 .LC10:
573 .string "%s: invalid option -- '%c'\n"
574 .section .rodata.str1.8
575 .align 8
576 .LC11:
577 .string "%s: option requires an argument -- '%c'\n"
578 .section .rodata.str1.1
579 .LC12:
580 .string "-W "
581 .text
582 .p2align 4,,15
583 .globl _getopt_internal_r
584 .type _getopt_internal_r, @function
585 _getopt_internal_r:
586 pushq %r15
587 pushq %r14
588 pushq %r13
589 pushq %r12
590 pushq %rbp
591 pushq %rbx
592 subq $56, %rsp
593 testl %edi, %edi
594 movq 112(%rsp), %rbx
595 movq %rcx, 8(%rsp)
596 movq %r8, 16(%rsp)
597 movl 4(%rbx), %r13d
598 jle .L200
599 movl (%rbx), %eax
600 movl %edi, %r12d
601 movq %rsi, %r15
602 movq %rdx, %rbp
603 movq $0, 16(%rbx)
604 testl %eax, %eax
605 je .L115
606 movl 24(%rbx), %esi
607 testl %esi, %esi
608 jne .L202
609 .L116:
610 movl %eax, 48(%rbx)
611 movl %eax, 44(%rbx)
612 movq $0, 32(%rbx)
613 movzbl 0(%rbp), %eax
614 cmpb $45, %al
615 je .L203
616 cmpb $43, %al
617 je .L204
618 movl 120(%rsp), %ecx
619 xorl %edx, %edx
620 testl %ecx, %ecx
621 je .L205
622 .L121:
623 movl $0, 40(%rbx)
624 .L119:
625 movl $1, 24(%rbx)
626 movzbl 0(%rbp), %eax
627 .L123:
628 cmpb $58, %al
629 movl $0, %eax
630 cmove %eax, %r13d
631 testq %rdx, %rdx
632 je .L125
633 .L208:
634 cmpb $0, (%rdx)
635 je .L125
636 .L126:
637 leaq 1(%rdx), %r9
638 movq %rbp, %rdi
639 movq %rdx, 32(%rsp)
640 movq %r9, 32(%rbx)
641 movsbl (%rdx), %r14d
642 movq %r9, 40(%rsp)
643 movl %r14d, %esi
644 movb %r14b, 28(%rsp)
645 call __GI_strchr
646 movq 32(%rsp), %rdx
647 movzbl 28(%rsp), %ecx
648 movq 40(%rsp), %r9
649 cmpb $0, 1(%rdx)
650 jne .L145
651 addl $1, (%rbx)
652 .L145:
653 subl $58, %ecx
654 cmpb $1, %cl
655 jbe .L172
656 testq %rax, %rax
657 je .L172
658 cmpb $87, (%rax)
659 movzbl 1(%rax), %ecx
660 je .L206
661 .L149:
662 cmpb $58, %cl
663 je .L207
664 .L112:
665 addq $56, %rsp
666 movl %r14d, %eax
667 popq %rbx
668 popq %rbp
669 popq %r12
670 popq %r13
671 popq %r14
672 popq %r15
674 .p2align 4,,10
675 .p2align 3
676 .L202:
677 movzbl (%rdx), %eax
678 movq 32(%rbx), %rdx
679 leal -43(%rax), %ecx
680 andl $253, %ecx
681 jne .L123
682 movzbl 1(%rbp), %eax
683 addq $1, %rbp
684 cmpb $58, %al
685 movl $0, %eax
686 cmove %eax, %r13d
687 testq %rdx, %rdx
688 jne .L208
689 .p2align 4,,10
690 .p2align 3
691 .L125:
692 movl (%rbx), %eax
693 cmpl %eax, 48(%rbx)
694 jle .L127
695 movl %eax, 48(%rbx)
696 .L127:
697 cmpl 44(%rbx), %eax
698 jge .L128
699 movl %eax, 44(%rbx)
700 .L128:
701 cmpl $1, 40(%rbx)
702 je .L209
703 .L129:
704 cmpl %eax, %r12d
705 je .L135
706 movslq %eax, %rdx
707 leaq .LC8(%rip), %r8
708 movl $3, %ecx
709 movq (%r15,%rdx,8), %r14
710 movq %r8, %rdi
711 movq %r14, %rsi
712 repz cmpsb
713 jne .L136
714 movl 44(%rbx), %edx
715 movl 48(%rbx), %ecx
716 addl $1, %eax
717 movl %eax, (%rbx)
718 cmpl %ecx, %edx
719 je .L137
720 cmpl %ecx, %eax
721 je .L138
722 movq %rbx, %rsi
723 movq %r15, %rdi
724 call exchange
725 movl 44(%rbx), %edx
726 .L138:
727 cmpl %r12d, %edx
728 movl %r12d, 48(%rbx)
729 movl %r12d, (%rbx)
730 jne .L162
731 .L200:
732 movl $-1, %r14d
733 jmp .L112
734 .p2align 4,,10
735 .p2align 3
736 .L203:
737 movl $2, 40(%rbx)
738 addq $1, %rbp
739 xorl %edx, %edx
740 jmp .L119
741 .p2align 4,,10
742 .p2align 3
743 .L136:
744 cmpb $45, (%r14)
745 je .L210
746 .L163:
747 movl 40(%rbx), %edx
748 testl %edx, %edx
749 je .L200
750 addl $1, %eax
751 movq %r14, 16(%rbx)
752 movl $1, %r14d
753 movl %eax, (%rbx)
754 jmp .L112
755 .p2align 4,,10
756 .p2align 3
757 .L115:
758 movl $1, (%rbx)
759 movl $1, %eax
760 jmp .L116
761 .p2align 4,,10
762 .p2align 3
763 .L135:
764 movl 48(%rbx), %r12d
765 movl 44(%rbx), %edx
766 cmpl %r12d, %edx
767 je .L200
768 .L162:
769 movl %edx, (%rbx)
770 movl $-1, %r14d
771 jmp .L112
772 .p2align 4,,10
773 .p2align 3
774 .L209:
775 movl 48(%rbx), %edx
776 cmpl %edx, 44(%rbx)
777 je .L130
778 cmpl %edx, %eax
779 je .L131
780 movq %rbx, %rsi
781 movq %r15, %rdi
782 movl %r9d, 28(%rsp)
783 call exchange
784 movl (%rbx), %edx
785 movl 28(%rsp), %r9d
786 .L131:
787 cmpl %edx, %r12d
788 jle .L169
789 leal -1(%r12), %ecx
790 movslq %edx, %rax
791 movl %ecx, %edi
792 subl %edx, %edi
793 leaq 1(%rax,%rdi), %rsi
794 jmp .L133
795 .p2align 4,,10
796 .p2align 3
797 .L134:
798 leal 1(%rax), %edx
799 addq $1, %rax
800 cmpq %rax, %rsi
801 movl %edx, (%rbx)
802 je .L169
803 .L133:
804 movq (%r15,%rax,8), %rcx
805 movl %eax, %edx
806 cmpb $45, (%rcx)
807 jne .L134
808 cmpb $0, 1(%rcx)
809 je .L134
810 movl (%rbx), %eax
811 .L132:
812 movl %edx, 48(%rbx)
813 jmp .L129
814 .p2align 4,,10
815 .p2align 3
816 .L206:
817 cmpq $0, 8(%rsp)
818 je .L149
819 cmpb $59, %cl
820 jne .L149
821 cmpb $0, 1(%rdx)
822 jne .L150
823 movslq (%rbx), %rax
824 cmpl %r12d, %eax
825 je .L211
826 movq (%r15,%rax,8), %r9
827 .L150:
828 leaq .LC12(%rip), %rax
829 subq $8, %rsp
830 movq %r9, 32(%rbx)
831 movq $0, 16(%rbx)
832 xorl %r9d, %r9d
833 pushq %rax
834 pushq %r13
835 pushq %rbx
836 .L201:
837 movq 48(%rsp), %r8
838 movq 40(%rsp), %rcx
839 movq %rbp, %rdx
840 movq %r15, %rsi
841 movl %r12d, %edi
842 call process_long_option
843 addq $32, %rsp
844 movl %eax, %r14d
845 jmp .L112
846 .p2align 4,,10
847 .p2align 3
848 .L130:
849 cmpl %edx, %eax
850 je .L131
851 movl %eax, 44(%rbx)
852 movl %eax, %edx
853 jmp .L131
854 .p2align 4,,10
855 .p2align 3
856 .L207:
857 cmpb $58, 2(%rax)
858 movzbl 1(%rdx), %edx
859 je .L212
860 testb %dl, %dl
861 movslq (%rbx), %rax
862 je .L158
863 addl $1, %eax
864 movq %r9, 16(%rbx)
865 movl %eax, (%rbx)
866 .L159:
867 movq $0, 32(%rbx)
868 jmp .L112
869 .p2align 4,,10
870 .p2align 3
871 .L172:
872 testl %r13d, %r13d
873 je .L148
874 leaq .LC10(%rip), %rsi
875 leaq __GI__libc_intl_domainname(%rip), %rdi
876 movl $5, %edx
877 movq (%r15), %rbp
878 call __GI___dcgettext
879 movq %rax, %rsi
880 movq stderr@GOTPCREL(%rip), %rax
881 movl %r14d, %ecx
882 movq %rbp, %rdx
883 movq (%rax), %rdi
884 xorl %eax, %eax
885 call __fxprintf_nocancel
886 .L148:
887 movl %r14d, 8(%rbx)
888 movl $63, %r14d
889 jmp .L112
890 .p2align 4,,10
891 .p2align 3
892 .L169:
893 movl %edx, %eax
894 jmp .L132
895 .p2align 4,,10
896 .p2align 3
897 .L210:
898 movzbl 1(%r14), %ecx
899 testb %cl, %cl
900 je .L163
901 cmpq $0, 8(%rsp)
902 je .L142
903 cmpb $45, %cl
904 je .L213
905 testl %r9d, %r9d
906 je .L142
907 cmpb $0, 2(%r14)
908 jne .L144
909 movsbl %cl, %esi
910 movq %rbp, %rdi
911 movl %r9d, 28(%rsp)
912 call __GI_strchr
913 testq %rax, %rax
914 movl 28(%rsp), %r9d
915 jne .L142
916 .L144:
917 leaq 1(%r14), %rdx
918 leaq .LC9(%rip), %rax
919 subq $8, %rsp
920 movq %r15, %rsi
921 movl %r12d, %edi
922 movq %rdx, 32(%rbx)
923 pushq %rax
924 movq %rbp, %rdx
925 pushq %r13
926 pushq %rbx
927 movq 48(%rsp), %r8
928 movq 40(%rsp), %rcx
929 call process_long_option
930 addq $32, %rsp
931 cmpl $-1, %eax
932 movl %eax, %r14d
933 jne .L112
934 movslq (%rbx), %rax
935 movq (%r15,%rax,8), %r14
936 .p2align 4,,10
937 .p2align 3
938 .L142:
939 leaq 1(%r14), %rdx
940 jmp .L126
941 .p2align 4,,10
942 .p2align 3
943 .L204:
944 movl $0, 40(%rbx)
945 addq $1, %rbp
946 xorl %edx, %edx
947 jmp .L119
948 .p2align 4,,10
949 .p2align 3
950 .L205:
951 leaq .LC7(%rip), %rdi
952 movl %r9d, 28(%rsp)
953 call __GI_getenv
954 testq %rax, %rax
955 movl 28(%rsp), %r9d
956 je .L122
957 movq 32(%rbx), %rdx
958 jmp .L121
959 .p2align 4,,10
960 .p2align 3
961 .L137:
962 movl %eax, 44(%rbx)
963 movl %eax, %edx
964 jmp .L138
965 .p2align 4,,10
966 .p2align 3
967 .L212:
968 testb %dl, %dl
969 je .L156
970 movq %r9, 16(%rbx)
971 addl $1, (%rbx)
972 jmp .L159
973 .L213:
974 leaq 2(%r14), %rdx
975 subq $8, %rsp
976 movq %rdx, 32(%rbx)
977 pushq %r8
978 pushq %r13
979 pushq %rbx
980 jmp .L201
981 .p2align 4,,10
982 .p2align 3
983 .L122:
984 movl $1, 40(%rbx)
985 movq 32(%rbx), %rdx
986 jmp .L119
987 .p2align 4,,10
988 .p2align 3
989 .L158:
990 cmpl %eax, %r12d
991 je .L214
992 leal 1(%rax), %edx
993 movq (%r15,%rax,8), %rax
994 movl %edx, (%rbx)
995 movq %rax, 16(%rbx)
996 jmp .L159
997 .L156:
998 movq $0, 16(%rbx)
999 jmp .L159
1000 .L214:
1001 testl %r13d, %r13d
1002 je .L161
1003 leaq .LC11(%rip), %rsi
1004 leaq __GI__libc_intl_domainname(%rip), %rdi
1005 movl $5, %edx
1006 movq (%r15), %r12
1007 call __GI___dcgettext
1008 movq %rax, %rsi
1009 movq stderr@GOTPCREL(%rip), %rax
1010 movl %r14d, %ecx
1011 movq %r12, %rdx
1012 movq (%rax), %rdi
1013 xorl %eax, %eax
1014 call __fxprintf_nocancel
1015 .L161:
1016 movl %r14d, 8(%rbx)
1017 xorl %r14d, %r14d
1018 cmpb $58, 0(%rbp)
1019 setne %r14b
1020 leal 58(%r14,%r14,4), %r14d
1021 jmp .L159
1022 .L211:
1023 testl %r13d, %r13d
1024 je .L152
1025 leaq .LC11(%rip), %rsi
1026 leaq __GI__libc_intl_domainname(%rip), %rdi
1027 movl $5, %edx
1028 movq (%r15), %r12
1029 call __GI___dcgettext
1030 movq %rax, %rsi
1031 movq stderr@GOTPCREL(%rip), %rax
1032 movl %r14d, %ecx
1033 movq %r12, %rdx
1034 movq (%rax), %rdi
1035 xorl %eax, %eax
1036 call __fxprintf_nocancel
1037 .L152:
1038 movl %r14d, 8(%rbx)
1039 xorl %r14d, %r14d
1040 cmpb $58, 0(%rbp)
1041 setne %r14b
1042 leal 58(%r14,%r14,4), %r14d
1043 jmp .L112
1044 .size _getopt_internal_r, .-_getopt_internal_r
1045 .p2align 4,,15
1046 .globl _getopt_internal
1047 .type _getopt_internal, @function
1048 _getopt_internal:
1049 pushq %rbx
1050 movq optind@GOTPCREL(%rip), %rbx
1051 movl (%rbx), %eax
1052 movl %eax, getopt_data(%rip)
1053 movq opterr@GOTPCREL(%rip), %rax
1054 movl (%rax), %eax
1055 movl %eax, 4+getopt_data(%rip)
1056 movl 16(%rsp), %eax
1057 pushq %rax
1058 leaq getopt_data(%rip), %rax
1059 pushq %rax
1060 call _getopt_internal_r@PLT
1061 movl getopt_data(%rip), %edx
1062 movq 16+getopt_data(%rip), %rcx
1063 movl %edx, (%rbx)
1064 movq optarg@GOTPCREL(%rip), %rdx
1065 movq %rcx, (%rdx)
1066 movq optopt@GOTPCREL(%rip), %rdx
1067 movl 8+getopt_data(%rip), %ecx
1068 movl %ecx, (%rdx)
1069 popq %rdx
1070 popq %rcx
1071 popq %rbx
1073 .size _getopt_internal, .-_getopt_internal
1074 .p2align 4,,15
1075 .globl getopt
1076 .type getopt, @function
1077 getopt:
1078 subq $16, %rsp
1079 xorl %r9d, %r9d
1080 xorl %r8d, %r8d
1081 pushq $0
1082 xorl %ecx, %ecx
1083 call _getopt_internal@PLT
1084 addq $24, %rsp
1086 .size getopt, .-getopt
1087 .p2align 4,,15
1088 .globl __posix_getopt
1089 .type __posix_getopt, @function
1090 __posix_getopt:
1091 subq $16, %rsp
1092 xorl %r9d, %r9d
1093 xorl %r8d, %r8d
1094 pushq $1
1095 xorl %ecx, %ecx
1096 call _getopt_internal@PLT
1097 addq $24, %rsp
1099 .size __posix_getopt, .-__posix_getopt
1100 .local getopt_data
1101 .comm getopt_data,56,32
1102 .globl optopt
1103 .data
1104 .align 4
1105 .type optopt, @object
1106 .size optopt, 4
1107 optopt:
1108 .long 63
1109 .globl opterr
1110 .align 4
1111 .type opterr, @object
1112 .size opterr, 4
1113 opterr:
1114 .long 1
1115 .globl optind
1116 .align 4
1117 .type optind, @object
1118 .size optind, 4
1119 optind:
1120 .long 1
1121 .comm optarg,8,8
1122 .hidden __fxprintf_nocancel