clarify the purpose of this project
[nyanglibc.git] / sunrpc / svc_authux.shared.s
blobbcc14aa8038859793f6373267ad173e224f66868
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .globl _svcauth_unix
9 .type _svcauth_unix, @function
10 _svcauth_unix:
11 pushq %r14
12 pushq %r13
13 movq %rsi, %r14
14 pushq %r12
15 pushq %rbp
16 movl $1, %ecx
17 pushq %rbx
18 movq %rdi, %r13
19 subq $48, %rsp
20 movq 48(%rdi), %rbx
21 movl 64(%rsi), %r12d
22 movq 56(%rsi), %rsi
23 movq %rsp, %rbp
24 movq %rbp, %rdi
25 leaq 40(%rbx), %rax
26 movl %r12d, %edx
27 movq %rax, 8(%rbx)
28 leaq 296(%rbx), %rax
29 movq %rax, 32(%rbx)
30 call __GI_xdrmem_create
31 movq 8(%rsp), %rax
32 movl %r12d, %esi
33 movq %rbp, %rdi
34 call *48(%rax)
35 testq %rax, %rax
36 je .L2
37 movl (%rax), %edx
38 bswap %edx
39 movl %edx, %edi
40 movl 4(%rax), %edx
41 movq %rdi, (%rbx)
42 bswap %edx
43 cmpl $255, %edx
44 jbe .L3
45 .L30:
46 movl $1, %ebx
47 .L4:
48 movq 8(%rsp), %rdx
49 movq 56(%rdx), %rdx
50 testq %rdx, %rdx
51 je .L1
52 movq %rbp, %rdi
53 call *%rdx
54 .L1:
55 addq $48, %rsp
56 movl %ebx, %eax
57 popq %rbx
58 popq %rbp
59 popq %r12
60 popq %r13
61 popq %r14
62 ret
63 .p2align 4,,10
64 .p2align 3
65 .L3:
66 cmpl $8, %edx
67 leaq 8(%rax), %r8
68 movl %edx, %r9d
69 movq 8(%rbx), %rcx
70 jnb .L5
71 testb $4, %dl
72 jne .L32
73 testl %edx, %edx
74 je .L6
75 movzbl 8(%rax), %eax
76 testb $2, %dl
77 movb %al, (%rcx)
78 jne .L27
79 .L29:
80 movq 8(%rbx), %rcx
81 .L6:
82 addl $3, %edx
83 movb $0, (%rcx,%r9)
84 andl $-4, %edx
85 movl %edx, %eax
86 addq %r8, %rax
87 movl (%rax), %ecx
88 bswap %ecx
89 movl %ecx, 16(%rbx)
90 movl 4(%rax), %ecx
91 bswap %ecx
92 movl %ecx, 20(%rbx)
93 movl 8(%rax), %edi
94 bswap %edi
95 cmpl $16, %edi
96 ja .L30
97 testl %edi, %edi
98 movl %edi, 24(%rbx)
99 je .L10
100 leaq 12(%rax), %rsi
101 movq 32(%rbx), %r9
102 leal -1(%rdi), %eax
103 leaq 4(,%rax,4), %r8
104 xorl %eax, %eax
105 .p2align 4,,10
106 .p2align 3
107 .L11:
108 movl (%rsi,%rax), %ecx
109 bswap %ecx
110 movl %ecx, (%r9,%rax)
111 addq $4, %rax
112 cmpq %rax, %r8
113 jne .L11
114 .L10:
115 leal 20(%rdx,%rdi,4), %eax
116 cmpl %r12d, %eax
117 ja .L30
118 .L12:
119 movl 88(%r14), %edx
120 movq 56(%r13), %rax
121 testl %edx, %edx
122 je .L13
123 movl 72(%r14), %ecx
124 xorl %ebx, %ebx
125 movl %ecx, 40(%rax)
126 movq 80(%r14), %rcx
127 movl %edx, 56(%rax)
128 movq %rcx, 48(%rax)
129 jmp .L4
130 .p2align 4,,10
131 .p2align 3
132 .L5:
133 movq 8(%rax), %rax
134 leaq 8(%rcx), %rdi
135 movq %r8, %rsi
136 andq $-8, %rdi
137 movq %rax, (%rcx)
138 movq -8(%r8,%r9), %rax
139 movq %rax, -8(%rcx,%r9)
140 subq %rdi, %rcx
141 subq %rcx, %rsi
142 addl %edx, %ecx
143 shrl $3, %ecx
144 rep movsq
145 jmp .L29
146 .p2align 4,,10
147 .p2align 3
148 .L2:
149 movq %rbx, %rsi
150 movq %rbp, %rdi
151 call __GI_xdr_authunix_parms
152 testl %eax, %eax
153 jne .L12
154 movq %rbx, %rsi
155 movq %rbp, %rdi
156 movl $2, (%rsp)
157 call __GI_xdr_authunix_parms
158 jmp .L30
159 .p2align 4,,10
160 .p2align 3
161 .L13:
162 movl $0, 40(%rax)
163 movl $0, 56(%rax)
164 xorl %ebx, %ebx
165 jmp .L4
166 .p2align 4,,10
167 .p2align 3
168 .L32:
169 movl 8(%rax), %eax
170 movl %eax, (%rcx)
171 movl -4(%r8,%r9), %eax
172 movl %eax, -4(%rcx,%r9)
173 movq 8(%rbx), %rcx
174 jmp .L6
175 .L27:
176 movzwl -2(%r8,%r9), %eax
177 movw %ax, -2(%rcx,%r9)
178 movq 8(%rbx), %rcx
179 jmp .L6
180 .size _svcauth_unix, .-_svcauth_unix
181 .p2align 4,,15
182 .globl _svcauth_short
183 .type _svcauth_short, @function
184 _svcauth_short:
185 movl $2, %eax
187 .size _svcauth_short, .-_svcauth_short