clarify the purpose of this project
[nyanglibc.git] / grp / fgetgrent_r.shared.s
blob1d75200a5917df62e00610f084dcdce7f9b0fa7f
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 __GI__nss_files_parse_grent
9 .hidden __GI__nss_files_parse_grent
10 .type __GI__nss_files_parse_grent, @function
11 __GI__nss_files_parse_grent:
12 .LFB74:
13 pushq %r15
14 pushq %r14
15 leaq (%rdx,%rcx), %r15
16 pushq %r13
17 pushq %r12
18 movq %rdx, %r14
19 pushq %rbp
20 pushq %rbx
21 movq %rsi, %r12
22 movq %rdi, %rbx
23 movq %r8, %rbp
24 subq $24, %rsp
25 cmpq %rdi, %rdx
26 ja .L35
27 cmpq %rdi, %r15
28 ja .L95
29 .L35:
30 movq %r14, %r13
31 .L2:
32 movl $10, %esi
33 movq %rbx, %rdi
34 call __GI_strchr@PLT
35 testq %rax, %rax
36 je .L3
37 movb $0, (%rax)
38 .L3:
39 movq %rbx, (%r12)
40 movzbl (%rbx), %eax
41 testb %al, %al
42 jne .L87
43 jmp .L4
44 .p2align 4,,10
45 .p2align 3
46 .L96:
47 addq $1, %rbx
48 movzbl (%rbx), %eax
49 testb %al, %al
50 je .L4
51 .L87:
52 cmpb $58, %al
53 jne .L96
54 .L4:
55 testb %al, %al
56 je .L7
57 movb $0, (%rbx)
58 addq $1, %rbx
59 .L7:
60 cmpb $0, (%rbx)
61 jne .L8
62 movq (%r12), %rax
63 movzbl (%rax), %eax
64 subl $43, %eax
65 testb $-3, %al
66 jne .L8
67 testq %r13, %r13
68 movq $0, 8(%r12)
69 movl $0, 16(%r12)
70 je .L97
71 .L23:
72 addq $7, %r13
73 andq $-8, %r13
74 leaq 16(%r13), %rdi
75 movq %r13, %rcx
76 .L24:
77 cmpq %rdi, %r15
78 jb .L98
79 .L25:
80 movzbl (%rbx), %eax
81 testb %al, %al
82 je .L26
83 movq __libc_tsd_CTYPE_B@gottpoff(%rip), %rdx
84 movq %fs:(%rdx), %rsi
85 movsbq %al, %rdx
86 testb $32, 1(%rsi,%rdx,2)
87 je .L27
88 .p2align 4,,10
89 .p2align 3
90 .L28:
91 addq $1, %rbx
92 movsbq (%rbx), %rdx
93 testb $32, 1(%rsi,%rdx,2)
94 movq %rdx, %rax
95 jne .L28
96 cmpb $44, %dl
97 je .L29
98 testb %dl, %dl
99 je .L29
100 .L89:
101 movq %rbx, %rsi
102 jmp .L30
103 .p2align 4,,10
104 .p2align 3
105 .L99:
106 cmpb $44, %al
107 je .L32
108 .L30:
109 movq %rbx, %rdx
110 addq $1, %rbx
111 movzbl (%rbx), %eax
112 testb %al, %al
113 jne .L99
114 .L32:
115 cmpq %rsi, %rbx
116 jbe .L29
117 movq %rsi, (%rcx)
118 movzbl 1(%rdx), %eax
119 addq $8, %rcx
120 leaq 16(%rcx), %rdi
121 .L29:
122 testb %al, %al
123 je .L24
124 .L34:
125 movb $0, (%rbx)
126 addq $1, %rbx
127 cmpq %rdi, %r15
128 jnb .L25
129 .L98:
130 movl $34, 0(%rbp)
131 addq $24, %rsp
132 movl $-1, %eax
133 popq %rbx
134 popq %rbp
135 popq %r12
136 popq %r13
137 popq %r14
138 popq %r15
140 .p2align 4,,10
141 .p2align 3
142 .L8:
143 movq %rbx, 8(%r12)
144 movzbl (%rbx), %eax
145 testb %al, %al
146 jne .L88
147 jmp .L10
148 .p2align 4,,10
149 .p2align 3
150 .L100:
151 addq $1, %rbx
152 movzbl (%rbx), %eax
153 testb %al, %al
154 je .L10
155 .L88:
156 cmpb $58, %al
157 jne .L100
158 .L10:
159 testb %al, %al
160 jne .L101
161 movq (%r12), %rax
162 movzbl (%rax), %eax
163 subl $43, %eax
164 testb $-3, %al
165 jne .L14
166 .L103:
167 cmpb $0, (%rbx)
168 jne .L102
169 .L20:
170 xorl %eax, %eax
171 .L1:
172 addq $24, %rsp
173 popq %rbx
174 popq %rbp
175 popq %r12
176 popq %r13
177 popq %r14
178 popq %r15
180 .p2align 4,,10
181 .p2align 3
182 .L101:
183 movb $0, (%rbx)
184 movq (%r12), %rax
185 addq $1, %rbx
186 movzbl (%rax), %eax
187 subl $43, %eax
188 testb $-3, %al
189 je .L103
190 .L14:
191 leaq 8(%rsp), %rsi
192 movl $10, %edx
193 movq %rbx, %rdi
194 call __GI_strtoul
195 movl $4294967295, %edx
196 cmpq %rdx, %rax
197 cmova %rdx, %rax
198 movl %eax, 16(%r12)
199 movq 8(%rsp), %rax
200 cmpq %rbx, %rax
201 je .L20
202 .L93:
203 movzbl (%rax), %edx
204 cmpb $58, %dl
205 je .L104
206 testb %dl, %dl
207 jne .L20
208 movq %rax, %rbx
209 .L106:
210 testq %r13, %r13
211 jne .L23
212 .L97:
213 cmpq %rbx, %r15
214 jbe .L36
215 cmpq %rbx, %r14
216 jbe .L105
217 .L36:
218 movq %r14, %r13
219 jmp .L23
220 .p2align 4,,10
221 .p2align 3
222 .L95:
223 call __GI_strlen@PLT
224 leaq 1(%rbx,%rax), %r13
225 jmp .L2
226 .p2align 4,,10
227 .p2align 3
228 .L27:
229 cmpb $44, %al
230 jne .L89
231 jmp .L34
232 .p2align 4,,10
233 .p2align 3
234 .L26:
235 testq %r13, %r13
236 movq $0, (%rcx)
237 je .L37
238 movq %r13, 24(%r12)
239 addq $24, %rsp
240 movl $1, %eax
241 popq %rbx
242 popq %rbp
243 popq %r12
244 popq %r13
245 popq %r14
246 popq %r15
248 .p2align 4,,10
249 .p2align 3
250 .L102:
251 leaq 8(%rsp), %rsi
252 movl $10, %edx
253 movq %rbx, %rdi
254 call __GI_strtoul
255 movl $4294967295, %edx
256 cmpq %rdx, %rax
257 cmova %rdx, %rax
258 movl %eax, 16(%r12)
259 movq 8(%rsp), %rax
260 cmpq %rbx, %rax
261 jne .L93
262 movl $0, 16(%r12)
263 jmp .L93
264 .L104:
265 addq $1, %rax
266 movq %rax, %rbx
267 jmp .L106
268 .L105:
269 movq %rbx, %rdi
270 call __GI_strlen@PLT
271 leaq 1(%rbx,%rax), %r13
272 jmp .L23
273 .L37:
274 movl $-1, %eax
275 jmp .L1
276 .LFE74:
277 .size __GI__nss_files_parse_grent, .-__GI__nss_files_parse_grent
278 .globl _nss_files_parse_grent
279 .set _nss_files_parse_grent,__GI__nss_files_parse_grent
280 .p2align 4,,15
281 .globl __fgetgrent_r
282 .hidden __fgetgrent_r
283 .type __fgetgrent_r, @function
284 __fgetgrent_r:
285 .LFB75:
286 pushq %rbp
287 pushq %rbx
288 movq %r8, %rbp
289 leaq __GI__nss_files_parse_grent(%rip), %r8
290 movq %rsi, %rbx
291 subq $8, %rsp
292 call __nss_fgetent_r
293 testl %eax, %eax
294 movl $0, %edx
295 cmovne %rdx, %rbx
296 movq %rbx, 0(%rbp)
297 addq $8, %rsp
298 popq %rbx
299 popq %rbp
301 .LFE75:
302 .size __fgetgrent_r, .-__fgetgrent_r
303 .weak fgetgrent_r
304 .set fgetgrent_r,__fgetgrent_r
305 .hidden __nss_fgetent_r