clarify the purpose of this project
[nyanglibc.git] / sunrpc / openchild.shared.s
blob0ea95db519c143b70e5d1ba53ed96f46bcf1d3aa
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 "exec"
9 .LC1:
10 .string "w"
11 .LC2:
12 .string "r"
13 #NO_APP
14 .text
15 .p2align 4,,15
16 .globl _openchild
17 .type _openchild, @function
18 _openchild:
19 .LFB63:
20 pushq %r13
21 pushq %r12
22 movq %rdi, %r13
23 pushq %rbp
24 pushq %rbx
25 movq %rsi, %r12
26 movq %rdx, %rbp
27 subq $24, %rsp
28 movq %rsp, %rdi
29 call __GI___pipe
30 testl %eax, %eax
31 js .L9
32 leaq 8(%rsp), %rdi
33 call __GI___pipe
34 testl %eax, %eax
35 js .L3
36 call __GI___fork
37 cmpl $-1, %eax
38 movl %eax, %ebx
39 je .L5
40 testl %eax, %eax
41 je .L14
42 movl 4(%rsp), %edi
43 leaq .LC1(%rip), %rsi
44 call __GI__IO_fdopen
45 movl (%rsp), %edi
46 movq %rax, (%r12)
47 call __GI___close
48 movl 8(%rsp), %edi
49 leaq .LC2(%rip), %rsi
50 call __GI__IO_fdopen
51 movl 12(%rsp), %edi
52 movq %rax, 0(%rbp)
53 call __GI___close
54 .L1:
55 addq $24, %rsp
56 movl %ebx, %eax
57 popq %rbx
58 popq %rbp
59 popq %r12
60 popq %r13
61 ret
62 .p2align 4,,10
63 .p2align 3
64 .L5:
65 movl 8(%rsp), %edi
66 call __GI___close
67 movl 12(%rsp), %edi
68 call __GI___close
69 .L3:
70 movl (%rsp), %edi
71 movl $-1, %ebx
72 call __GI___close
73 movl 4(%rsp), %edi
74 call __GI___close
75 addq $24, %rsp
76 movl %ebx, %eax
77 popq %rbx
78 popq %rbp
79 popq %r12
80 popq %r13
81 ret
82 .p2align 4,,10
83 .p2align 3
84 .L9:
85 movl $-1, %ebx
86 jmp .L1
87 .L14:
88 xorl %edi, %edi
89 call __GI___close
90 movl (%rsp), %edi
91 call __GI___dup
92 movl $1, %edi
93 call __GI___close
94 movl 12(%rsp), %edi
95 call __GI___dup
96 movq stderr@GOTPCREL(%rip), %rbp
97 movq 0(%rbp), %rdi
98 call __GI__IO_fflush
99 call __GI__rpc_dtablesize
100 leal -1(%rax), %ebx
101 cmpl $2, %ebx
102 jle .L7
103 .L8:
104 movl %ebx, %edi
105 subl $1, %ebx
106 call __GI___close
107 cmpl $2, %ebx
108 jne .L8
109 .L7:
110 movq 0(%rbp), %rdi
111 call __GI__IO_fflush
112 xorl %edx, %edx
113 movq %r13, %rsi
114 movq %r13, %rdi
115 xorl %eax, %eax
116 call __GI_execlp
117 leaq .LC0(%rip), %rdi
118 call __GI_perror
119 orl $-1, %edi
120 call __GI__exit
121 .LFE63:
122 .size _openchild, .-_openchild