clarify the purpose of this project
[nyanglibc.git] / sunrpc / compat-auth_unix.shared.s
blob94139ebd298189b82598316f032d77a070c0c086
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .symver __EI_authunix_create, authunix_create@GLIBC_2.2.5
7 #NO_APP
8 .p2align 4,,15
9 .type authunix_nextverf, @function
10 authunix_nextverf:
11 .LFB65:
12 rep ret
13 .LFE65:
14 .size authunix_nextverf, .-authunix_nextverf
15 .p2align 4,,15
16 .type authunix_marshal, @function
17 authunix_marshal:
18 .LFB66:
19 movq %rsi, %rax
20 movq 64(%rdi), %rsi
21 movq 8(%rax), %rcx
22 movq %rax, %rdi
23 movl 456(%rsi), %edx
24 addq $56, %rsi
25 movq 24(%rcx), %rcx
26 jmp *%rcx
27 .LFE66:
28 .size authunix_marshal, .-authunix_marshal
29 .p2align 4,,15
30 .type authunix_destroy, @function
31 authunix_destroy:
32 .LFB69:
33 pushq %rbp
34 pushq %rbx
35 movq %rdi, %rbx
36 subq $8, %rsp
37 movq 64(%rdi), %rbp
38 movq 8(%rbp), %rdi
39 call free@PLT
40 movq 32(%rbp), %rdi
41 testq %rdi, %rdi
42 je .L5
43 call free@PLT
44 .L5:
45 movq 64(%rbx), %rdi
46 call free@PLT
47 movq 32(%rbx), %rdi
48 testq %rdi, %rdi
49 je .L6
50 call free@PLT
51 .L6:
52 addq $8, %rsp
53 movq %rbx, %rdi
54 popq %rbx
55 popq %rbp
56 jmp free@PLT
57 .LFE69:
58 .size authunix_destroy, .-authunix_destroy
59 .section .rodata.str1.8,"aMS",@progbits,1
60 .align 8
61 .LC0:
62 .string "auth_unix.c: Fatal marshalling problem"
63 .text
64 .p2align 4,,15
65 .type marshal_new_auth, @function
66 marshal_new_auth:
67 .LFB70:
68 pushq %r12
69 pushq %rbp
70 xorl %ecx, %ecx
71 pushq %rbx
72 movq %rdi, %rbp
73 movl $400, %edx
74 subq $48, %rsp
75 movq 64(%rdi), %r12
76 movq %rsp, %rbx
77 movq %rbx, %rdi
78 leaq 56(%r12), %rsi
79 call __GI_xdrmem_create
80 movq %rbp, %rsi
81 movq %rbx, %rdi
82 call __GI_xdr_opaque_auth
83 testl %eax, %eax
84 je .L17
85 leaq 24(%rbp), %rsi
86 movq %rbx, %rdi
87 call __GI_xdr_opaque_auth
88 testl %eax, %eax
89 je .L17
90 movq 8(%rsp), %rax
91 movq %rbx, %rdi
92 call *32(%rax)
93 movl %eax, 456(%r12)
94 jmp .L16
95 .p2align 4,,10
96 .p2align 3
97 .L17:
98 leaq __GI__libc_intl_domainname(%rip), %rdi
99 leaq .LC0(%rip), %rsi
100 movl $5, %edx
101 call __GI___dcgettext
102 movq %rax, %rdi
103 call __GI_perror
104 .L16:
105 movq 8(%rsp), %rax
106 movq 56(%rax), %rax
107 testq %rax, %rax
108 je .L18
109 movq %rbx, %rdi
110 call *%rax
111 .L18:
112 addq $48, %rsp
113 movl $1, %eax
114 popq %rbx
115 popq %rbp
116 popq %r12
118 .LFE70:
119 .size marshal_new_auth, .-marshal_new_auth
120 .p2align 4,,15
121 .type authunix_refresh, @function
122 authunix_refresh:
123 .LFB68:
124 pushq %r14
125 pushq %r13
126 pushq %r12
127 pushq %rbp
128 xorl %r12d, %r12d
129 pushq %rbx
130 subq $112, %rsp
131 movq 64(%rdi), %rbx
132 movq 8(%rbx), %rsi
133 cmpq %rsi, 8(%rdi)
134 je .L26
135 addq $1, 48(%rbx)
136 movl 16(%rbx), %edx
137 leaq 64(%rsp), %r13
138 leaq 16(%rsp), %r14
139 movl $1, %ecx
140 movq %rdi, %rbp
141 movq %r13, %rdi
142 movq $0, 24(%rsp)
143 movq $0, 48(%rsp)
144 call __GI_xdrmem_create
145 movq %r14, %rsi
146 movq %r13, %rdi
147 call __GI_xdr_authunix_parms
148 testl %eax, %eax
149 movl %eax, %r12d
150 jne .L40
151 .L28:
152 movq %r14, %rsi
153 movq %r13, %rdi
154 movl $2, 64(%rsp)
155 call __GI_xdr_authunix_parms
156 movq 72(%rsp), %rax
157 movq 56(%rax), %rax
158 testq %rax, %rax
159 je .L26
160 movq %r13, %rdi
161 call *%rax
162 .L26:
163 addq $112, %rsp
164 movl %r12d, %eax
165 popq %rbx
166 popq %rbp
167 popq %r12
168 popq %r13
169 popq %r14
171 .p2align 4,,10
172 .p2align 3
173 .L40:
174 xorl %edi, %edi
175 movq %rsp, %rsi
176 call __GI___clock_gettime
177 movq (%rsp), %rax
178 xorl %esi, %esi
179 movq %r13, %rdi
180 movl $0, 64(%rsp)
181 movq %rax, 16(%rsp)
182 movq 72(%rsp), %rax
183 call *40(%rax)
184 movq %r14, %rsi
185 movq %r13, %rdi
186 call __GI_xdr_authunix_parms
187 testl %eax, %eax
188 movl %eax, %r12d
189 je .L28
190 movdqu (%rbx), %xmm0
191 movq %rbp, %rdi
192 movq 16(%rbx), %rax
193 movups %xmm0, 0(%rbp)
194 movq %rax, 16(%rbp)
195 call marshal_new_auth
196 jmp .L28
197 .LFE68:
198 .size authunix_refresh, .-authunix_refresh
199 .p2align 4,,15
200 .type authunix_validate, @function
201 authunix_validate:
202 .LFB67:
203 cmpl $2, (%rsi)
204 je .L53
205 movl $1, %eax
207 .p2align 4,,10
208 .p2align 3
209 .L53:
210 pushq %r13
211 pushq %r12
212 movl $1, %ecx
213 pushq %rbp
214 pushq %rbx
215 movq %rdi, %rbp
216 subq $56, %rsp
217 movq 64(%rdi), %rbx
218 movl 16(%rsi), %edx
219 movq 8(%rsi), %rsi
220 movq %rsp, %r12
221 movq %r12, %rdi
222 call __GI_xdrmem_create
223 movq 32(%rbx), %rdi
224 testq %rdi, %rdi
225 je .L43
226 call free@PLT
227 movq $0, 32(%rbx)
228 .L43:
229 leaq 24(%rbx), %r13
230 movq %r12, %rdi
231 movq %r13, %rsi
232 call __GI_xdr_opaque_auth
233 testl %eax, %eax
234 je .L44
235 movdqu 24(%rbx), %xmm0
236 movq 40(%rbx), %rax
237 movups %xmm0, 0(%rbp)
238 movq %rax, 16(%rbp)
239 .L45:
240 movq %rbp, %rdi
241 call marshal_new_auth
242 addq $56, %rsp
243 movl $1, %eax
244 popq %rbx
245 popq %rbp
246 popq %r12
247 popq %r13
249 .p2align 4,,10
250 .p2align 3
251 .L44:
252 movq %r13, %rsi
253 movq %r12, %rdi
254 movl $2, (%rsp)
255 call __GI_xdr_opaque_auth
256 movq 16(%rbx), %rax
257 movq $0, 32(%rbx)
258 movdqu (%rbx), %xmm0
259 movq %rax, 16(%rbp)
260 movups %xmm0, 0(%rbp)
261 jmp .L45
262 .LFE67:
263 .size authunix_validate, .-authunix_validate
264 .section .rodata.str1.1,"aMS",@progbits,1
265 .LC1:
266 .string "out of memory\n"
267 .LC2:
268 .string "%s: %s"
269 .text
270 .p2align 4,,15
271 .globl __GI_authunix_create
272 .hidden __GI_authunix_create
273 .type __GI_authunix_create, @function
274 __GI_authunix_create:
275 .LFB63:
276 pushq %r15
277 pushq %r14
278 movq %rdi, %r15
279 pushq %r13
280 pushq %r12
281 movl $72, %edi
282 pushq %rbp
283 pushq %rbx
284 movl %esi, %r14d
285 movl %ecx, %r12d
286 movq %r8, %rbp
287 subq $536, %rsp
288 movl %edx, 12(%rsp)
289 call malloc@PLT
290 movl $464, %edi
291 movq %rax, %rbx
292 call malloc@PLT
293 testq %rbx, %rbx
294 movq %rax, %r13
295 je .L59
296 testq %rax, %rax
297 je .L59
298 leaq auth_unix_ops(%rip), %rax
299 movdqu __GI__null_auth(%rip), %xmm0
300 leaq 16(%rsp), %rsi
301 xorl %edi, %edi
302 movq %r13, 64(%rbx)
303 movq %rax, 56(%rbx)
304 movq 16+__GI__null_auth(%rip), %rax
305 movups %xmm0, 24(%rbx)
306 movq $0, 48(%r13)
307 movups %xmm0, 24(%r13)
308 movq %rax, 40(%rbx)
309 movq %rax, 40(%r13)
310 call __GI___clock_gettime
311 movq 16(%rsp), %rax
312 movl %r12d, 56(%rsp)
313 leaq 128(%rsp), %r12
314 movq %rbp, 64(%rsp)
315 leaq 80(%rsp), %rbp
316 xorl %ecx, %ecx
317 movl $400, %edx
318 movq %r12, %rsi
319 movq %r15, 40(%rsp)
320 movq %rax, 32(%rsp)
321 movl 12(%rsp), %eax
322 movq %rbp, %rdi
323 movl %r14d, 48(%rsp)
324 movl %eax, 52(%rsp)
325 call __GI_xdrmem_create
326 leaq 32(%rsp), %rsi
327 movq %rbp, %rdi
328 call __GI_xdr_authunix_parms
329 testl %eax, %eax
330 je .L64
331 movq 88(%rsp), %rax
332 movq %rbp, %rdi
333 call *32(%rax)
334 movl %eax, %ebp
335 movl %eax, 16(%r13)
336 movl $1, 0(%r13)
337 movq %rbp, %rdi
338 call malloc@PLT
339 testq %rax, %rax
340 movq %rax, 8(%r13)
341 je .L59
342 movq %rax, %rdi
343 movq %rbp, %rdx
344 movq %r12, %rsi
345 call __GI_memcpy@PLT
346 movdqu 0(%r13), %xmm0
347 movq %rbx, %rdi
348 movq 16(%r13), %rax
349 movups %xmm0, (%rbx)
350 movq %rax, 16(%rbx)
351 call marshal_new_auth
352 .L54:
353 addq $536, %rsp
354 movq %rbx, %rax
355 popq %rbx
356 popq %rbp
357 popq %r12
358 popq %r13
359 popq %r14
360 popq %r15
362 .p2align 4,,10
363 .p2align 3
364 .L59:
365 leaq .LC1(%rip), %rsi
366 leaq __GI__libc_intl_domainname(%rip), %rdi
367 movl $5, %edx
368 call __GI___dcgettext
369 leaq __func__.8733(%rip), %rdx
370 leaq .LC2(%rip), %rsi
371 movq %rax, %rcx
372 xorl %edi, %edi
373 xorl %eax, %eax
374 call __fxprintf
375 movq %rbx, %rdi
376 xorl %ebx, %ebx
377 call free@PLT
378 movq %r13, %rdi
379 call free@PLT
380 jmp .L54
381 .L64:
382 call __GI_abort
383 .LFE63:
384 .size __GI_authunix_create, .-__GI_authunix_create
385 .globl __EI_authunix_create
386 .set __EI_authunix_create,__GI_authunix_create
387 .p2align 4,,15
388 .globl __GI_authunix_create_default
389 .hidden __GI_authunix_create_default
390 .type __GI_authunix_create_default, @function
391 __GI_authunix_create_default:
392 .LFB64:
393 pushq %rbp
394 movl $255, %esi
395 movq %rsp, %rbp
396 pushq %r15
397 pushq %r14
398 pushq %r13
399 leaq -304(%rbp), %r13
400 pushq %r12
401 pushq %rbx
402 movq %r13, %rdi
403 subq $280, %rsp
404 call __gethostname
405 cmpl $-1, %eax
406 je .L72
407 movb $0, -49(%rbp)
408 xorl %r12d, %r12d
409 call __geteuid
410 movl %eax, -312(%rbp)
411 call __getegid
412 movl %eax, %r15d
413 jmp .L73
414 .p2align 4,,10
415 .p2align 3
416 .L90:
417 cmpb $1, %r12b
418 je .L68
419 cltq
420 leaq 30(,%rax,4), %rax
421 andq $-16, %rax
422 subq %rax, %rsp
423 leaq 15(%rsp), %rbx
424 andq $-16, %rbx
425 .L69:
426 movq %rbx, %rsi
427 movl %r14d, %edi
428 call __getgroups
429 cmpl $-1, %eax
430 jne .L71
431 movq __libc_errno@gottpoff(%rip), %rax
432 cmpl $22, %fs:(%rax)
433 jne .L72
434 cmpl $255, %r14d
435 seta %al
436 orl %r12d, %eax
437 movl $1, %r12d
438 testb %al, %al
439 jne .L89
440 .L73:
441 xorl %esi, %esi
442 xorl %edi, %edi
443 call __getgroups
444 cmpl $255, %eax
445 movl %eax, %r14d
446 jbe .L90
447 .L68:
448 movslq %r14d, %rdi
449 salq $2, %rdi
450 call malloc@PLT
451 testq %rax, %rax
452 movq %rax, %rbx
453 jne .L69
454 xorl %eax, %eax
455 .L65:
456 leaq -40(%rbp), %rsp
457 popq %rbx
458 popq %r12
459 popq %r13
460 popq %r14
461 popq %r15
462 popq %rbp
464 .p2align 4,,10
465 .p2align 3
466 .L71:
467 movl -312(%rbp), %esi
468 cmpl $16, %eax
469 movl $16, %ecx
470 cmovle %eax, %ecx
471 movq %rbx, %r8
472 movl %r15d, %edx
473 movq %r13, %rdi
474 call __GI_authunix_create
475 cmpl $255, %r14d
476 ja .L76
477 testb %r12b, %r12b
478 je .L65
479 .L76:
480 movq %rbx, %rdi
481 movq %rax, -312(%rbp)
482 call free@PLT
483 movq -312(%rbp), %rax
484 leaq -40(%rbp), %rsp
485 popq %rbx
486 popq %r12
487 popq %r13
488 popq %r14
489 popq %r15
490 popq %rbp
492 .p2align 4,,10
493 .p2align 3
494 .L89:
495 .L67:
496 movq %rbx, %rdi
497 movb %al, -313(%rbp)
498 call free@PLT
499 movzbl -313(%rbp), %eax
500 movl %eax, %r12d
501 jmp .L73
502 .L72:
503 call __GI_abort
504 .LFE64:
505 .size __GI_authunix_create_default, .-__GI_authunix_create_default
506 .globl authunix_create_default
507 .set authunix_create_default,__GI_authunix_create_default
508 .section .rodata.str1.16,"aMS",@progbits,1
509 .align 16
510 .type __func__.8733, @object
511 .size __func__.8733, 16
512 __func__.8733:
513 .string "authunix_create"
514 .section .data.rel.ro.local,"aw",@progbits
515 .align 32
516 .type auth_unix_ops, @object
517 .size auth_unix_ops, 40
518 auth_unix_ops:
519 .quad authunix_nextverf
520 .quad authunix_marshal
521 .quad authunix_validate
522 .quad authunix_refresh
523 .quad authunix_destroy
524 .hidden __getgroups
525 .hidden __getegid
526 .hidden __geteuid
527 .hidden __gethostname
528 .hidden __fxprintf