clarify the purpose of this project
[nyanglibc.git] / time / alt_digit.shared.s
blob2a8bac5dcc10890fb8adf9a7b0ed2f42f8422a5a
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 #NO_APP
7 .p2align 4,,15
8 .type _nl_init_alt_digit, @function
9 _nl_init_alt_digit:
10 pushq %r12
11 pushq %rbp
12 movq %rdi, %rbp
13 pushq %rbx
14 movq 40(%rdi), %rbx
15 testq %rbx, %rbx
16 je .L17
17 .L2:
18 movl 40(%rbx), %eax
19 testl %eax, %eax
20 jne .L1
21 movq 440(%rbp), %rbp
22 movl $1, 40(%rbx)
23 testq %rbp, %rbp
24 je .L1
25 movl $800, %edi
26 call malloc@PLT
27 testq %rax, %rax
28 movq %rax, 24(%rbx)
29 je .L1
30 leaq 800(%rax), %r12
31 movq %rax, %rbx
32 .p2align 4,,10
33 .p2align 3
34 .L4:
35 movq %rbp, (%rbx)
36 movq %rbp, %rdi
37 addq $8, %rbx
38 call __GI_strlen@PLT
39 cmpq %r12, %rbx
40 leaq 1(%rbp,%rax), %rbp
41 jne .L4
42 .L1:
43 popq %rbx
44 popq %rbp
45 popq %r12
46 ret
47 .L17:
48 movl $1, %esi
49 movl $48, %edi
50 call calloc@PLT
51 testq %rax, %rax
52 movq %rax, %rbx
53 movq %rax, 40(%rbp)
54 je .L1
55 leaq _nl_cleanup_time(%rip), %rax
56 movq %rax, 32(%rbp)
57 jmp .L2
58 .size _nl_init_alt_digit, .-_nl_init_alt_digit
59 .p2align 4,,15
60 .globl _nl_get_alt_digit
61 .hidden _nl_get_alt_digit
62 .type _nl_get_alt_digit, @function
63 _nl_get_alt_digit:
64 pushq %rbp
65 pushq %rbx
66 subq $8, %rsp
67 cmpl $99, %edi
68 ja .L26
69 movq 440(%rsi), %rax
70 cmpb $0, (%rax)
71 je .L26
72 movl __libc_pthread_functions_init(%rip), %ecx
73 movq %rsi, %rbx
74 movl %edi, %ebp
75 testl %ecx, %ecx
76 je .L20
77 movq 144+__libc_pthread_functions(%rip), %rax
78 leaq __libc_setlocale_lock(%rip), %rdi
79 #APP
80 # 79 "alt_digit.c" 1
81 ror $2*8+1, %rax
82 xor %fs:48, %rax
83 # 0 "" 2
84 #NO_APP
85 call *%rax
86 .L20:
87 movq 40(%rbx), %rax
88 testq %rax, %rax
89 je .L21
90 movl 40(%rax), %edx
91 testl %edx, %edx
92 jne .L22
93 .L21:
94 movq %rbx, %rdi
95 call _nl_init_alt_digit
96 movq 40(%rbx), %rax
97 testq %rax, %rax
98 jne .L22
99 .L24:
100 xorl %ebx, %ebx
101 jmp .L23
102 .p2align 4,,10
103 .p2align 3
104 .L22:
105 movq 24(%rax), %rax
106 testq %rax, %rax
107 je .L24
108 movl %ebp, %edi
109 movq (%rax,%rdi,8), %rbx
110 .L23:
111 movl __libc_pthread_functions_init(%rip), %eax
112 testl %eax, %eax
113 je .L18
114 movq 152+__libc_pthread_functions(%rip), %rax
115 leaq __libc_setlocale_lock(%rip), %rdi
116 #APP
117 # 90 "alt_digit.c" 1
118 ror $2*8+1, %rax
119 xor %fs:48, %rax
120 # 0 "" 2
121 #NO_APP
122 call *%rax
123 .L18:
124 addq $8, %rsp
125 movq %rbx, %rax
126 popq %rbx
127 popq %rbp
129 .p2align 4,,10
130 .p2align 3
131 .L26:
132 xorl %ebx, %ebx
133 addq $8, %rsp
134 movq %rbx, %rax
135 popq %rbx
136 popq %rbp
138 .size _nl_get_alt_digit, .-_nl_get_alt_digit
139 .p2align 4,,15
140 .globl _nl_get_walt_digit
141 .hidden _nl_get_walt_digit
142 .type _nl_get_walt_digit, @function
143 _nl_get_walt_digit:
144 cmpl $99, %edi
145 pushq %r14
146 pushq %r13
147 pushq %r12
148 pushq %rbp
149 pushq %rbx
150 ja .L45
151 movq 848(%rsi), %rax
152 movl (%rax), %r8d
153 testl %r8d, %r8d
154 je .L45
155 movl __libc_pthread_functions_init(%rip), %ecx
156 movq %rsi, %rbx
157 movl %edi, %r13d
158 testl %ecx, %ecx
159 je .L36
160 movq 144+__libc_pthread_functions(%rip), %rax
161 leaq __libc_setlocale_lock(%rip), %rdi
162 #APP
163 # 105 "alt_digit.c" 1
164 ror $2*8+1, %rax
165 xor %fs:48, %rax
166 # 0 "" 2
167 #NO_APP
168 call *%rax
169 .L36:
170 movq 40(%rbx), %rbp
171 testq %rbp, %rbp
172 je .L57
173 .L37:
174 movl 44(%rbp), %edx
175 testl %edx, %edx
176 jne .L40
177 movq 848(%rbx), %rbx
178 movl $1, 44(%rbp)
179 testq %rbx, %rbx
180 je .L40
181 movl $800, %edi
182 call malloc@PLT
183 testq %rax, %rax
184 movq %rax, %r14
185 movq %rax, 32(%rbp)
186 je .L41
187 leaq 800(%rax), %r12
188 movq %rax, %rbp
189 .p2align 4,,10
190 .p2align 3
191 .L42:
192 movq %rbx, 0(%rbp)
193 xorl %esi, %esi
194 movq %rbx, %rdi
195 addq $8, %rbp
196 call __GI___wcschr
197 cmpq %r12, %rbp
198 leaq 4(%rax), %rbx
199 jne .L42
200 .L43:
201 movq (%r14,%r13,8), %rbx
202 .L39:
203 movl __libc_pthread_functions_init(%rip), %eax
204 testl %eax, %eax
205 je .L34
206 movq 152+__libc_pthread_functions(%rip), %rax
207 leaq __libc_setlocale_lock(%rip), %rdi
208 #APP
209 # 142 "alt_digit.c" 1
210 ror $2*8+1, %rax
211 xor %fs:48, %rax
212 # 0 "" 2
213 #NO_APP
214 call *%rax
215 .L34:
216 movq %rbx, %rax
217 popq %rbx
218 popq %rbp
219 popq %r12
220 popq %r13
221 popq %r14
223 .p2align 4,,10
224 .p2align 3
225 .L40:
226 movq 32(%rbp), %r14
227 testq %r14, %r14
228 jne .L43
229 .L41:
230 xorl %ebx, %ebx
231 jmp .L39
232 .p2align 4,,10
233 .p2align 3
234 .L45:
235 xorl %ebx, %ebx
236 movq %rbx, %rax
237 popq %rbx
238 popq %rbp
239 popq %r12
240 popq %r13
241 popq %r14
243 .p2align 4,,10
244 .p2align 3
245 .L57:
246 movl $1, %esi
247 movl $48, %edi
248 call calloc@PLT
249 testq %rax, %rax
250 movq %rax, %rbp
251 movq %rax, 40(%rbx)
252 je .L41
253 leaq _nl_cleanup_time(%rip), %rax
254 movq %rax, 32(%rbx)
255 jmp .L37
256 .size _nl_get_walt_digit, .-_nl_get_walt_digit
257 .p2align 4,,15
258 .globl _nl_parse_alt_digit
259 .hidden _nl_parse_alt_digit
260 .type _nl_parse_alt_digit, @function
261 _nl_parse_alt_digit:
262 pushq %r15
263 pushq %r14
264 pushq %r13
265 pushq %r12
266 pushq %rbp
267 pushq %rbx
268 subq $24, %rsp
269 movq (%rdi), %rax
270 movq %rax, (%rsp)
271 movq 848(%rsi), %rax
272 movl (%rax), %r8d
273 testl %r8d, %r8d
274 je .L69
275 movq %rsi, %rbx
276 movl __libc_pthread_functions_init(%rip), %esi
277 movq %rdi, 8(%rsp)
278 testl %esi, %esi
279 je .L61
280 movq 144+__libc_pthread_functions(%rip), %rax
281 leaq __libc_setlocale_lock(%rip), %rdi
282 #APP
283 # 159 "alt_digit.c" 1
284 ror $2*8+1, %rax
285 xor %fs:48, %rax
286 # 0 "" 2
287 #NO_APP
288 call *%rax
289 .L61:
290 movq 40(%rbx), %rax
291 testq %rax, %rax
292 je .L62
293 movl 40(%rax), %ecx
294 testl %ecx, %ecx
295 jne .L63
296 .L62:
297 movq %rbx, %rdi
298 call _nl_init_alt_digit
299 movq 40(%rbx), %rax
300 testq %rax, %rax
301 jne .L63
302 .L64:
303 movl __libc_pthread_functions_init(%rip), %eax
304 xorl %ebp, %ebp
305 movl $-1, %r12d
306 testl %eax, %eax
307 je .L69
308 .L68:
309 movq 152+__libc_pthread_functions(%rip), %rax
310 leaq __libc_setlocale_lock(%rip), %rdi
311 #APP
312 # 184 "alt_digit.c" 1
313 ror $2*8+1, %rax
314 xor %fs:48, %rax
315 # 0 "" 2
316 #NO_APP
317 call *%rax
318 .L67:
319 cmpl $-1, %r12d
320 je .L58
321 movq 8(%rsp), %rax
322 addq %rbp, (%rax)
323 .L58:
324 addq $24, %rsp
325 movl %r12d, %eax
326 popq %rbx
327 popq %rbp
328 popq %r12
329 popq %r13
330 popq %r14
331 popq %r15
333 .p2align 4,,10
334 .p2align 3
335 .L63:
336 movq 24(%rax), %r13
337 testq %r13, %r13
338 je .L64
339 xorl %ebp, %ebp
340 xorl %ebx, %ebx
341 movl $-1, %r12d
342 .p2align 4,,10
343 .p2align 3
344 .L66:
345 movq 0(%r13,%rbx,8), %r14
346 movq %r14, %rdi
347 call __GI_strlen
348 cmpq %rbp, %rax
349 movq %rax, %r15
350 jbe .L65
351 movq (%rsp), %rsi
352 movq %rax, %rdx
353 movq %r14, %rdi
354 call __GI_strncmp
355 testl %eax, %eax
356 cmove %ebx, %r12d
357 cmove %r15, %rbp
358 .L65:
359 addq $1, %rbx
360 cmpq $100, %rbx
361 jne .L66
362 movl __libc_pthread_functions_init(%rip), %edx
363 testl %edx, %edx
364 jne .L68
365 jmp .L67
366 .L69:
367 movl $-1, %r12d
368 jmp .L58
369 .size _nl_parse_alt_digit, .-_nl_parse_alt_digit
370 .hidden __libc_setlocale_lock
371 .hidden __libc_pthread_functions
372 .hidden __libc_pthread_functions_init
373 .hidden _nl_cleanup_time