clarify the purpose of this project
[nyanglibc.git] / inet / getrpcent_r.s
blobb16f137d2a68a424703d1057af116382f66fab02
1 .text
2 #APP
3 .section .gnu.warning.setrpcent
4 .previous
5 .section .gnu.warning.endrpcent
6 .previous
7 .section .gnu.warning.getrpcent_r
8 .previous
9 .section .rodata.str1.1,"aMS",@progbits,1
10 .LC0:
11 .string "setrpcent"
12 #NO_APP
13 .text
14 .p2align 4,,15
15 .globl setrpcent
16 .type setrpcent, @function
17 setrpcent:
18 .LFB70:
19 subq $24, %rsp
20 movl %edi, %r9d
21 #APP
22 # 124 "../nss/getXXent_r.c" 1
23 movl %fs:24,%eax
24 # 0 "" 2
25 #NO_APP
26 testl %eax, %eax
27 jne .L2
28 movl $1, %edx
29 #APP
30 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
31 cmpxchgl %edx, lock(%rip)
32 # 0 "" 2
33 #NO_APP
34 .L3:
35 leaq stayopen_tmp(%rip), %rax
36 pushq $0
37 leaq last_nip(%rip), %r8
38 leaq startp(%rip), %rcx
39 leaq nip(%rip), %rdx
40 leaq __nss_rpc_lookup2(%rip), %rsi
41 pushq %rax
42 leaq .LC0(%rip), %rdi
43 call __nss_setent
44 movq __libc_errno@gottpoff(%rip), %r8
45 movl %fs:(%r8), %r9d
46 #APP
47 # 129 "../nss/getXXent_r.c" 1
48 movl %fs:24,%eax
49 # 0 "" 2
50 #NO_APP
51 testl %eax, %eax
52 popq %rdx
53 popq %rcx
54 jne .L4
55 subl $1, lock(%rip)
56 .L5:
57 movl %r9d, %fs:(%r8)
58 addq $24, %rsp
59 ret
60 .p2align 4,,10
61 .p2align 3
62 .L2:
63 xorl %eax, %eax
64 movl $1, %edx
65 lock cmpxchgl %edx, lock(%rip)
66 je .L3
67 movl %edi, 12(%rsp)
68 leaq lock(%rip), %rdi
69 call __lll_lock_wait_private
70 movl 12(%rsp), %r9d
71 jmp .L3
72 .p2align 4,,10
73 .p2align 3
74 .L4:
75 xorl %eax, %eax
76 #APP
77 # 129 "../nss/getXXent_r.c" 1
78 xchgl %eax, lock(%rip)
79 # 0 "" 2
80 #NO_APP
81 cmpl $1, %eax
82 jle .L5
83 xorl %r10d, %r10d
84 movl $1, %edx
85 movl $129, %esi
86 leaq lock(%rip), %rdi
87 movl $202, %eax
88 #APP
89 # 129 "../nss/getXXent_r.c" 1
90 syscall
92 # 0 "" 2
93 #NO_APP
94 jmp .L5
95 .LFE70:
96 .size setrpcent, .-setrpcent
97 .section .rodata.str1.1
98 .LC1:
99 .string "endrpcent"
100 .text
101 .p2align 4,,15
102 .globl endrpcent
103 .type endrpcent, @function
104 endrpcent:
105 .LFB71:
106 cmpq $0, startp(%rip)
107 je .L15
108 subq $8, %rsp
109 #APP
110 # 142 "../nss/getXXent_r.c" 1
111 movl %fs:24,%eax
112 # 0 "" 2
113 #NO_APP
114 testl %eax, %eax
115 jne .L10
116 movl $1, %edx
117 #APP
118 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
119 cmpxchgl %edx, lock(%rip)
120 # 0 "" 2
121 #NO_APP
122 .L11:
123 leaq last_nip(%rip), %r8
124 leaq startp(%rip), %rcx
125 leaq nip(%rip), %rdx
126 leaq __nss_rpc_lookup2(%rip), %rsi
127 leaq .LC1(%rip), %rdi
128 xorl %r9d, %r9d
129 call __nss_endent
130 movq __libc_errno@gottpoff(%rip), %r8
131 movl %fs:(%r8), %r9d
132 #APP
133 # 146 "../nss/getXXent_r.c" 1
134 movl %fs:24,%eax
135 # 0 "" 2
136 #NO_APP
137 testl %eax, %eax
138 jne .L12
139 subl $1, lock(%rip)
140 .L13:
141 movl %r9d, %fs:(%r8)
142 addq $8, %rsp
144 .p2align 4,,10
145 .p2align 3
146 .L15:
147 rep ret
148 .p2align 4,,10
149 .p2align 3
150 .L12:
151 xorl %eax, %eax
152 #APP
153 # 146 "../nss/getXXent_r.c" 1
154 xchgl %eax, lock(%rip)
155 # 0 "" 2
156 #NO_APP
157 cmpl $1, %eax
158 jle .L13
159 xorl %r10d, %r10d
160 movl $1, %edx
161 movl $129, %esi
162 leaq lock(%rip), %rdi
163 movl $202, %eax
164 #APP
165 # 146 "../nss/getXXent_r.c" 1
166 syscall
168 # 0 "" 2
169 #NO_APP
170 jmp .L13
171 .p2align 4,,10
172 .p2align 3
173 .L10:
174 xorl %eax, %eax
175 movl $1, %edx
176 lock cmpxchgl %edx, lock(%rip)
177 je .L11
178 leaq lock(%rip), %rdi
179 call __lll_lock_wait_private
180 jmp .L11
181 .LFE71:
182 .size endrpcent, .-endrpcent
183 .section .rodata.str1.1
184 .LC2:
185 .string "getrpcent_r"
186 .text
187 .p2align 4,,15
188 .globl __getrpcent_r
189 .hidden __getrpcent_r
190 .type __getrpcent_r, @function
191 __getrpcent_r:
192 .LFB72:
193 pushq %rbx
194 movq %rdi, %rbx
195 subq $32, %rsp
196 #APP
197 # 159 "../nss/getXXent_r.c" 1
198 movl %fs:24,%eax
199 # 0 "" 2
200 #NO_APP
201 testl %eax, %eax
202 jne .L19
203 movl $1, %edi
204 #APP
205 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
206 cmpxchgl %edi, lock(%rip)
207 # 0 "" 2
208 #NO_APP
209 .L20:
210 leaq stayopen_tmp(%rip), %rax
211 subq $8, %rsp
212 leaq last_nip(%rip), %r9
213 pushq $0
214 leaq startp(%rip), %r8
215 pushq %rcx
216 leaq .LC2(%rip), %rdi
217 pushq %rdx
218 leaq nip(%rip), %rcx
219 pushq %rsi
220 leaq __nss_rpc_lookup2(%rip), %rdx
221 pushq %rbx
222 leaq .LC0(%rip), %rsi
223 pushq $0
224 pushq %rax
225 call __nss_getent_r
226 movq __libc_errno@gottpoff(%rip), %r8
227 movl %eax, %r9d
228 movl %fs:(%r8), %ebx
229 #APP
230 # 165 "../nss/getXXent_r.c" 1
231 movl %fs:24,%eax
232 # 0 "" 2
233 #NO_APP
234 addq $64, %rsp
235 testl %eax, %eax
236 jne .L21
237 subl $1, lock(%rip)
238 .L22:
239 movl %ebx, %fs:(%r8)
240 addq $32, %rsp
241 movl %r9d, %eax
242 popq %rbx
244 .p2align 4,,10
245 .p2align 3
246 .L19:
247 xorl %eax, %eax
248 movl $1, %edi
249 lock cmpxchgl %edi, lock(%rip)
250 je .L20
251 leaq lock(%rip), %rdi
252 movq %rcx, 24(%rsp)
253 movq %rdx, 16(%rsp)
254 movq %rsi, 8(%rsp)
255 call __lll_lock_wait_private
256 movq 24(%rsp), %rcx
257 movq 16(%rsp), %rdx
258 movq 8(%rsp), %rsi
259 jmp .L20
260 .p2align 4,,10
261 .p2align 3
262 .L21:
263 xorl %eax, %eax
264 #APP
265 # 165 "../nss/getXXent_r.c" 1
266 xchgl %eax, lock(%rip)
267 # 0 "" 2
268 #NO_APP
269 cmpl $1, %eax
270 jle .L22
271 xorl %r10d, %r10d
272 movl $1, %edx
273 movl $129, %esi
274 leaq lock(%rip), %rdi
275 movl $202, %eax
276 #APP
277 # 165 "../nss/getXXent_r.c" 1
278 syscall
280 # 0 "" 2
281 #NO_APP
282 jmp .L22
283 .LFE72:
284 .size __getrpcent_r, .-__getrpcent_r
285 .globl __new_getrpcent_r
286 .set __new_getrpcent_r,__getrpcent_r
287 .weak getrpcent_r
288 .set getrpcent_r,__new_getrpcent_r
289 .section .gnu.warning.getrpcent_r
290 #,"a",@progbits
291 .align 32
292 .type __evoke_link_warning_getrpcent_r, @object
293 .size __evoke_link_warning_getrpcent_r, 135
294 __evoke_link_warning_getrpcent_r:
295 .string "Using 'getrpcent_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking"
296 .section .gnu.warning.endrpcent
297 #,"a",@progbits
298 .align 32
299 .type __evoke_link_warning_endrpcent, @object
300 .size __evoke_link_warning_endrpcent, 133
301 __evoke_link_warning_endrpcent:
302 .string "Using 'endrpcent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking"
303 .section .gnu.warning.setrpcent
304 #,"a",@progbits
305 .align 32
306 .type __evoke_link_warning_setrpcent, @object
307 .size __evoke_link_warning_setrpcent, 133
308 __evoke_link_warning_setrpcent:
309 .string "Using 'setrpcent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking"
310 .local lock
311 .comm lock,4,4
312 .local stayopen_tmp
313 .comm stayopen_tmp,4,4
314 .local startp
315 .comm startp,8,8
316 .local last_nip
317 .comm last_nip,8,8
318 .local nip
319 .comm nip,8,8
320 .hidden __nss_getent_r
321 .hidden __nss_endent
322 .hidden __lll_lock_wait_private
323 .hidden __nss_setent
324 .hidden __nss_rpc_lookup2