clarify the purpose of this project
[nyanglibc.git] / intl / l10nflist.s
blob48592ddd5af1b0af4383d18bf1403ee7cbcc1c90
1 .text
2 .p2align 4,,15
3 .globl _nl_make_l10nflist
4 .type _nl_make_l10nflist, @function
5 _nl_make_l10nflist:
6 pushq %r15
7 pushq %r14
8 movl %ecx, %r15d
9 pushq %r13
10 pushq %r12
11 movq %rdx, %r12
12 pushq %rbp
13 pushq %rbx
14 leaq 2(%r12), %r13
15 subq $72, %rsp
16 movq %rdi, 24(%rsp)
17 movq %r8, %rdi
18 movq %rsi, 16(%rsp)
19 movl %ecx, 56(%rsp)
20 movq %r8, 8(%rsp)
21 movq %r9, 32(%rsp)
22 call strlen
23 andl $4, %r15d
24 movq %rax, %rbx
25 movl %r15d, %r14d
26 je .L97
27 movq 32(%rsp), %rdi
28 call strlen
29 leaq 1(%rax), %rbp
30 .L2:
31 movl 56(%rsp), %eax
32 addq %r13, %rbx
33 xorl %r13d, %r13d
34 andl $2, %eax
35 movl %eax, 40(%rsp)
36 je .L3
37 movq 128(%rsp), %rdi
38 call strlen
39 leaq 1(%rax), %r13
40 .L3:
41 movl 56(%rsp), %eax
42 addq %rbp, %rbx
43 xorl %ebp, %ebp
44 andl $1, %eax
45 movl %eax, 48(%rsp)
46 je .L4
47 movq 136(%rsp), %rdi
48 call strlen
49 leaq 1(%rax), %rbp
50 .L4:
51 movl 56(%rsp), %eax
52 addq %r13, %rbx
53 xorl %r13d, %r13d
54 andl $8, %eax
55 movl %eax, 60(%rsp)
56 je .L5
57 movq 144(%rsp), %rdi
58 call strlen
59 leaq 1(%rax), %r13
60 .L5:
61 movq 152(%rsp), %rdi
62 call strlen
63 leaq (%rbx,%rbp), %rdi
64 movq %rax, %r15
65 addq %r13, %rdi
66 addq %rax, %rdi
67 call malloc@PLT
68 testq %rax, %rax
69 movq %rax, %rbp
70 je .L40
71 movq 16(%rsp), %rsi
72 movq %r12, %rdx
73 movq %rax, %rdi
74 call memcpy@PLT
75 testq %r12, %r12
76 je .L7
77 movq %r12, %rbx
78 movq %rbp, %r13
79 .L8:
80 movq %r13, %rdi
81 call strlen
82 movq %rax, %rdx
83 notq %rdx
84 addq %rdx, %rbx
85 je .L7
86 addq %r13, %rax
87 leaq 1(%rax), %r13
88 movb $58, (%rax)
89 jmp .L8
90 .p2align 4,,10
91 .p2align 3
92 .L7:
93 movq 8(%rsp), %rsi
94 leaq 0(%rbp,%r12), %rdi
95 movb $47, -1(%rbp,%r12)
96 call __stpcpy@PLT
97 testl %r14d, %r14d
98 jne .L100
99 .L9:
100 movl 40(%rsp), %esi
101 leaq 1(%rax), %rdi
102 testl %esi, %esi
103 jne .L101
104 .L10:
105 movl 48(%rsp), %ecx
106 testl %ecx, %ecx
107 jne .L102
108 .L11:
109 movl 60(%rsp), %edx
110 testl %edx, %edx
111 jne .L103
112 .L12:
113 movq 152(%rsp), %rsi
114 leaq 1(%r15), %rdx
115 movb $47, (%rax)
116 call memcpy@PLT
117 movq 24(%rsp), %rax
118 movq (%rax), %rax
119 testq %rax, %rax
120 movq %rax, 48(%rsp)
121 je .L41
122 movq %rax, %r13
123 xorl %r14d, %r14d
124 .p2align 4,,10
125 .p2align 3
126 .L16:
127 movq 0(%r13), %rdi
128 testq %rdi, %rdi
129 je .L14
130 movq %rbp, %rsi
131 call strcmp
132 testl %eax, %eax
133 je .L15
134 js .L13
135 movq %r13, %r14
136 .L14:
137 movq 24(%r13), %r13
138 testq %r13, %r13
139 jne .L16
140 .L13:
141 movl 160(%rsp), %eax
142 testl %eax, %eax
143 je .L42
144 movl 56(%rsp), %ecx
145 movl $1, %r13d
146 movl %ecx, %eax
147 andl $21845, %ecx
148 sarl %eax
149 andl $-10923, %eax
150 addl %ecx, %eax
151 movl %eax, %ecx
152 andl $13107, %eax
153 sarl $2, %ecx
154 andl $-3277, %ecx
155 addl %eax, %ecx
156 movl %ecx, %eax
157 sarl $4, %eax
158 addl %ecx, %eax
159 andl $3855, %eax
160 movl %eax, %ecx
161 sarl $8, %ecx
162 addl %eax, %ecx
163 sall %cl, %r13d
164 testq %r12, %r12
165 movslq %r13d, %rax
166 movq %rax, 40(%rsp)
167 je .L104
168 movq 16(%rsp), %r15
169 movq %r12, %rbx
170 xorl %r13d, %r13d
171 .p2align 4,,10
172 .p2align 3
173 .L17:
174 movq %r15, %rdi
175 addq $1, %r13
176 call strlen
177 leaq 1(%r15,%rax), %r15
178 notq %rax
179 addq %rax, %rbx
180 jne .L17
181 imulq 40(%rsp), %r13
182 leaq 40(,%r13,8), %rdi
183 call malloc@PLT
184 testq %rax, %rax
185 movq %rax, %r13
186 je .L34
187 movq 16(%rsp), %r15
188 movq %rbp, (%rax)
189 movq %r12, %rbp
190 .p2align 4,,10
191 .p2align 3
192 .L20:
193 movq %r15, %rdi
194 addq $1, %rbx
195 call strlen
196 leaq 1(%r15,%rax), %r15
197 notq %rax
198 addq %rax, %rbp
199 jne .L20
200 cmpq $1, %rbx
201 movl $1, %eax
202 je .L105
203 .L21:
204 testq %r14, %r14
205 movl %eax, 8(%r13)
206 movq $0, 16(%r13)
207 je .L106
208 movq 24(%r14), %rax
209 movq %rax, 24(%r13)
210 movq %r13, 24(%r14)
211 .L23:
212 testq %r12, %r12
213 je .L45
214 movq 16(%rsp), %r14
215 movq %r12, %rbx
216 xorl %ebp, %ebp
217 .p2align 4,,10
218 .p2align 3
219 .L25:
220 movq %r14, %rdi
221 addq $1, %rbp
222 call strlen
223 leaq 1(%r14,%rax), %r14
224 notq %rax
225 addq %rax, %rbx
226 jne .L25
227 movl 56(%rsp), %r15d
228 xorl %eax, %eax
229 cmpq $1, %rbp
230 sete %al
231 subl %eax, %r15d
232 .L24:
233 movl 56(%rsp), %eax
234 xorl %ebx, %ebx
235 testl %r15d, %r15d
236 notl %eax
237 movl %eax, 56(%rsp)
238 movq 16(%rsp), %rax
239 leaq (%rax,%r12), %r14
240 js .L32
241 movq %r12, %rax
242 movl %r15d, %r12d
243 movq %rax, %r15
244 .L31:
245 testl %r12d, 56(%rsp)
246 je .L107
247 .L27:
248 subl $1, %r12d
249 cmpl $-1, %r12d
250 jne .L31
251 .L32:
252 movq $0, 32(%r13,%rbx,8)
253 .L1:
254 addq $72, %rsp
255 movq %r13, %rax
256 popq %rbx
257 popq %rbp
258 popq %r12
259 popq %r13
260 popq %r14
261 popq %r15
263 .p2align 4,,10
264 .p2align 3
265 .L97:
266 xorl %ebp, %ebp
267 jmp .L2
268 .p2align 4,,10
269 .p2align 3
270 .L105:
271 movl 56(%rsp), %eax
272 andl $3, %eax
273 cmpl $3, %eax
274 sete %al
275 movzbl %al, %eax
276 jmp .L21
277 .p2align 4,,10
278 .p2align 3
279 .L103:
280 movq 144(%rsp), %rsi
281 movb $64, (%rax)
282 call __stpcpy@PLT
283 leaq 1(%rax), %rdi
284 jmp .L12
285 .p2align 4,,10
286 .p2align 3
287 .L102:
288 movq 136(%rsp), %rsi
289 movb $46, (%rax)
290 call __stpcpy@PLT
291 leaq 1(%rax), %rdi
292 jmp .L11
293 .p2align 4,,10
294 .p2align 3
295 .L101:
296 movq 128(%rsp), %rsi
297 movb $46, (%rax)
298 call __stpcpy@PLT
299 leaq 1(%rax), %rdi
300 jmp .L10
301 .p2align 4,,10
302 .p2align 3
303 .L100:
304 movq 32(%rsp), %rsi
305 leaq 1(%rax), %rdi
306 movb $95, (%rax)
307 call __stpcpy@PLT
308 jmp .L9
309 .L42:
310 xorl %r13d, %r13d
311 .p2align 4,,10
312 .p2align 3
313 .L15:
314 movq %rbp, %rdi
315 call free@PLT
316 jmp .L1
317 .p2align 4,,10
318 .p2align 3
319 .L107:
320 xorl %ebp, %ebp
321 jmp .L26
322 .p2align 4,,10
323 .p2align 3
324 .L108:
325 cmpq %r14, %rbp
326 jnb .L27
327 movq %rbp, %rdi
328 call strlen@PLT
329 leaq 1(%rbp,%rax), %rbp
330 cmpq %r14, %rbp
331 jnb .L27
332 testq %rbp, %rbp
333 je .L27
334 .L29:
335 movq %rbp, %rdi
336 addq $1, %rbx
337 call strlen
338 subq $8, %rsp
339 leaq 1(%rax), %rdx
340 movl %r12d, %ecx
341 pushq $1
342 pushq 168(%rsp)
343 movq %rbp, %rsi
344 pushq 168(%rsp)
345 pushq 168(%rsp)
346 pushq 168(%rsp)
347 movq 80(%rsp), %r9
348 movq 56(%rsp), %r8
349 movq 72(%rsp), %rdi
350 call _nl_make_l10nflist
351 addq $48, %rsp
352 movq %rax, 24(%r13,%rbx,8)
353 .L26:
354 testq %rbp, %rbp
355 jne .L108
356 testq %r15, %r15
357 je .L27
358 movq 16(%rsp), %rbp
359 jmp .L29
360 .p2align 4,,10
361 .p2align 3
362 .L106:
363 movq 48(%rsp), %rax
364 movq %rax, 24(%r13)
365 movq 24(%rsp), %rax
366 movq %r13, (%rax)
367 jmp .L23
368 .p2align 4,,10
369 .p2align 3
370 .L104:
371 movl $40, %edi
372 call malloc@PLT
373 testq %rax, %rax
374 movq %rax, %r13
375 je .L34
376 movq %rbp, 0(%r13)
377 movl $1, %eax
378 jmp .L21
379 .p2align 4,,10
380 .p2align 3
381 .L45:
382 movl 56(%rsp), %r15d
383 jmp .L24
384 .p2align 4,,10
385 .p2align 3
386 .L40:
387 xorl %r13d, %r13d
388 jmp .L1
389 .L41:
390 xorl %r14d, %r14d
391 jmp .L13
392 .L34:
393 movq %rbp, %rdi
394 xorl %r13d, %r13d
395 call free@PLT
396 jmp .L1
397 .size _nl_make_l10nflist, .-_nl_make_l10nflist
398 .p2align 4,,15
399 .globl _nl_normalize_codeset
400 .type _nl_normalize_codeset, @function
401 _nl_normalize_codeset:
402 testq %rsi, %rsi
403 pushq %r12
404 pushq %rbp
405 pushq %rbx
406 je .L110
407 movq 104+_nl_C_locobj(%rip), %rbx
408 leaq (%rsi,%rdi), %r8
409 movq %rdi, %rbp
410 movq %rsi, %r12
411 movq %rdi, %rdx
412 movl $1, %esi
413 xorl %edi, %edi
414 xorl %r9d, %r9d
415 .p2align 4,,10
416 .p2align 3
417 .L112:
418 movzbl (%rdx), %ecx
419 testb $8, (%rbx,%rcx,2)
420 movq %rcx, %rax
421 je .L111
422 subl $48, %eax
423 addq $1, %rdi
424 cmpl $10, %eax
425 cmovnb %r9d, %esi
426 .L111:
427 addq $1, %rdx
428 cmpq %rdx, %r8
429 jne .L112
430 testl %esi, %esi
431 jne .L131
432 addq $1, %rdi
433 call malloc@PLT
434 testq %rax, %rax
435 movq %rax, %rcx
436 je .L115
437 movq %rcx, %rax
438 .L119:
439 movq 112+_nl_C_locobj(%rip), %r9
440 xorl %edx, %edx
441 jmp .L118
442 .p2align 4,,10
443 .p2align 3
444 .L132:
445 movl (%r9,%r8,4), %esi
446 addq $1, %rcx
447 movb %sil, -1(%rcx)
448 .L117:
449 addq $1, %rdx
450 cmpq %rdx, %r12
451 jbe .L121
452 .L118:
453 movzbl 0(%rbp,%rdx), %r8d
454 testb $4, 1(%rbx,%r8,2)
455 jne .L132
456 movzbl %r8b, %esi
457 subl $48, %esi
458 cmpl $9, %esi
459 ja .L117
460 addq $1, %rdx
461 movb %r8b, (%rcx)
462 addq $1, %rcx
463 cmpq %rdx, %r12
464 ja .L118
465 .L121:
466 movb $0, (%rcx)
467 .L134:
468 popq %rbx
469 popq %rbp
470 popq %r12
472 .p2align 4,,10
473 .p2align 3
474 .L131:
475 addq $4, %rdi
476 call malloc@PLT
477 testq %rax, %rax
478 jne .L133
479 .L115:
480 popq %rbx
481 xorl %eax, %eax
482 popq %rbp
483 popq %r12
485 .p2align 4,,10
486 .p2align 3
487 .L133:
488 movl $7304041, (%rax)
489 leaq 3(%rax), %rcx
490 jmp .L119
491 .p2align 4,,10
492 .p2align 3
493 .L110:
494 movl $4, %edi
495 call malloc@PLT
496 testq %rax, %rax
497 je .L115
498 leaq 3(%rax), %rcx
499 movl $7304041, (%rax)
500 movb $0, (%rcx)
501 jmp .L134
502 .size _nl_normalize_codeset, .-_nl_normalize_codeset
503 .hidden _nl_C_locobj
504 .hidden strcmp
505 .hidden strlen