clarify the purpose of this project
[nyanglibc.git] / libio / iofwide.s
blob84488c5d9992464a2996aab795705006f1a51f97
1 .text
2 .section .rodata.str1.1,"aMS",@progbits,1
3 .LC0:
4 .string "iofwide.c"
5 .LC1:
6 .string "fcts.towc_nsteps == 1"
7 .LC2:
8 .string "fcts.tomb_nsteps == 1"
9 .text
10 .p2align 4,,15
11 .globl _IO_fwide
12 .type _IO_fwide, @function
13 _IO_fwide:
14 pushq %rbp
15 pushq %rbx
16 movq %rdi, %rbx
17 subq $40, %rsp
18 testl %esi, %esi
19 movl 192(%rdi), %eax
20 js .L15
21 testl %eax, %eax
22 jne .L1
23 testl %esi, %esi
24 jne .L16
25 .L1:
26 addq $40, %rsp
27 popq %rbx
28 popq %rbp
29 ret
30 .p2align 4,,10
31 .p2align 3
32 .L15:
33 testl %eax, %eax
34 jne .L1
35 movl $-1, %eax
36 .L4:
37 movl %eax, 192(%rbx)
38 addq $40, %rsp
39 popq %rbx
40 popq %rbp
41 ret
42 .p2align 4,,10
43 .p2align 3
44 .L16:
45 movq 160(%rdi), %rbp
46 leaq 104(%rbp), %rax
47 movq %rax, 152(%rdi)
48 movq 8(%rbp), %rax
49 movq $0, 88(%rbp)
50 movq %rax, 0(%rbp)
51 movq 24(%rbp), %rax
52 movq %rax, 32(%rbp)
53 movq 160(%rdi), %rax
54 movq %rsp, %rdi
55 movq $0, 96(%rax)
56 call __wcsmbs_clone_conv
57 cmpq $1, 8(%rsp)
58 jne .L17
59 cmpq $1, 24(%rsp)
60 jne .L18
61 movq (%rsp), %rax
62 movq 16(%rsp), %rcx
63 movq $1, 128(%rbp)
64 movl $1, 136(%rbp)
65 movq %rax, 104(%rbp)
66 movq 160(%rbx), %rax
67 movq %rcx, 160(%rbp)
68 movq $9, 184(%rbp)
69 movl $1, 192(%rbp)
70 leaq 88(%rax), %rdx
71 movq 224(%rax), %rax
72 movq %rdx, 144(%rbp)
73 movq %rdx, 200(%rbp)
74 movq %rax, 216(%rbx)
75 movl $1, %eax
76 jmp .L4
77 .L17:
78 leaq __PRETTY_FUNCTION__.12950(%rip), %rcx
79 leaq .LC0(%rip), %rsi
80 leaq .LC1(%rip), %rdi
81 movl $80, %edx
82 call __assert_fail
83 .L18:
84 leaq __PRETTY_FUNCTION__.12950(%rip), %rcx
85 leaq .LC0(%rip), %rsi
86 leaq .LC2(%rip), %rdi
87 movl $81, %edx
88 call __assert_fail
89 .size _IO_fwide, .-_IO_fwide
90 .p2align 4,,15
91 .globl __libio_codecvt_out
92 .hidden __libio_codecvt_out
93 .type __libio_codecvt_out, @function
94 __libio_codecvt_out:
95 pushq %r14
96 pushq %r13
97 movq %rcx, %r14
98 pushq %r12
99 pushq %rbp
100 movq %r8, %r13
101 pushq %rbx
102 movq %rdi, %rbp
103 subq $16, %rsp
104 movq 56(%rdi), %r12
105 movq %r9, 64(%rdi)
106 movq 64(%rsp), %rax
107 movq %rdx, 8(%rsp)
108 movq %rsi, 96(%rdi)
109 cmpq $0, (%r12)
110 movq 40(%r12), %rbx
111 movq %rax, 72(%rdi)
112 je .L20
113 #APP
114 # 129 "iofwide.c" 1
115 ror $2*8+1, %rbx
116 xor %fs:48, %rbx
117 # 0 "" 2
118 #NO_APP
119 .L20:
120 movq %rbx, %rdi
121 call _dl_mcount_wrapper_check
122 leaq 8(%rsp), %rdx
123 pushq $0
124 pushq $0
125 xorl %r8d, %r8d
126 movq %r14, %rcx
127 leaq 64(%rbp), %rsi
128 leaq 16(%rsp), %r9
129 movq %r12, %rdi
130 call *%rbx
131 movq 24(%rsp), %rdx
132 movq 64(%rbp), %rcx
133 cmpl $4, %eax
134 movq %rdx, 0(%r13)
135 movq 88(%rsp), %rdx
136 movq %rcx, (%rdx)
137 popq %rdx
138 popq %rcx
139 je .L25
140 jle .L39
141 cmpl $5, %eax
142 je .L24
143 cmpl $7, %eax
144 je .L24
145 .L21:
146 addq $16, %rsp
147 movl $2, %eax
148 popq %rbx
149 popq %rbp
150 popq %r12
151 popq %r13
152 popq %r14
154 .p2align 4,,10
155 .p2align 3
156 .L24:
157 addq $16, %rsp
158 movl $1, %eax
159 popq %rbx
160 popq %rbp
161 popq %r12
162 popq %r13
163 popq %r14
165 .p2align 4,,10
166 .p2align 3
167 .L39:
168 testl %eax, %eax
169 jne .L21
170 .L25:
171 addq $16, %rsp
172 xorl %eax, %eax
173 popq %rbx
174 popq %rbp
175 popq %r12
176 popq %r13
177 popq %r14
179 .size __libio_codecvt_out, .-__libio_codecvt_out
180 .p2align 4,,15
181 .globl __libio_codecvt_in
182 .hidden __libio_codecvt_in
183 .type __libio_codecvt_in, @function
184 __libio_codecvt_in:
185 pushq %r14
186 pushq %r13
187 movq %rcx, %r14
188 pushq %r12
189 pushq %rbp
190 movq %r8, %r13
191 pushq %rbx
192 movq %rdi, %rbp
193 subq $16, %rsp
194 movq (%rdi), %r12
195 movq %r9, 8(%rdi)
196 movq 64(%rsp), %rax
197 movq %rdx, 8(%rsp)
198 movq %rsi, 40(%rdi)
199 cmpq $0, (%r12)
200 movq 40(%r12), %rbx
201 movq %rax, 16(%rdi)
202 je .L41
203 #APP
204 # 181 "iofwide.c" 1
205 ror $2*8+1, %rbx
206 xor %fs:48, %rbx
207 # 0 "" 2
208 #NO_APP
209 .L41:
210 movq %rbx, %rdi
211 call _dl_mcount_wrapper_check
212 leaq 8(%rsp), %rdx
213 pushq $0
214 pushq $0
215 xorl %r8d, %r8d
216 movq %r14, %rcx
217 leaq 8(%rbp), %rsi
218 leaq 16(%rsp), %r9
219 movq %r12, %rdi
220 call *%rbx
221 movq 24(%rsp), %rdx
222 movq 8(%rbp), %rcx
223 cmpl $4, %eax
224 movq %rdx, 0(%r13)
225 movq 88(%rsp), %rdx
226 movq %rcx, (%rdx)
227 popq %rdx
228 popq %rcx
229 je .L46
230 jle .L60
231 cmpl $5, %eax
232 je .L45
233 cmpl $7, %eax
234 je .L45
235 .L42:
236 addq $16, %rsp
237 movl $2, %eax
238 popq %rbx
239 popq %rbp
240 popq %r12
241 popq %r13
242 popq %r14
244 .p2align 4,,10
245 .p2align 3
246 .L45:
247 addq $16, %rsp
248 movl $1, %eax
249 popq %rbx
250 popq %rbp
251 popq %r12
252 popq %r13
253 popq %r14
255 .p2align 4,,10
256 .p2align 3
257 .L60:
258 testl %eax, %eax
259 jne .L42
260 .L46:
261 addq $16, %rsp
262 xorl %eax, %eax
263 popq %rbx
264 popq %rbp
265 popq %r12
266 popq %r13
267 popq %r14
269 .size __libio_codecvt_in, .-__libio_codecvt_in
270 .p2align 4,,15
271 .globl __libio_codecvt_encoding
272 .hidden __libio_codecvt_encoding
273 .type __libio_codecvt_encoding, @function
274 __libio_codecvt_encoding:
275 movq (%rdi), %rdx
276 movl 88(%rdx), %eax
277 testl %eax, %eax
278 jne .L63
279 movl 72(%rdx), %ecx
280 cmpl 76(%rdx), %ecx
281 cmove %ecx, %eax
283 .p2align 4,,10
284 .p2align 3
285 .L63:
286 movl $-1, %eax
288 .size __libio_codecvt_encoding, .-__libio_codecvt_encoding
289 .p2align 4,,15
290 .globl __libio_codecvt_length
291 .hidden __libio_codecvt_length
292 .type __libio_codecvt_length, @function
293 __libio_codecvt_length:
294 pushq %rbp
295 salq $2, %r8
296 movq %rsp, %rbp
297 pushq %r15
298 pushq %r14
299 pushq %r13
300 pushq %r12
301 movq %rdx, %r14
302 pushq %rbx
303 movq %rcx, %r13
304 movq %rdi, %rbx
305 subq $24, %rsp
306 movq %rdx, -64(%rbp)
307 leaq 18(%r8), %rdx
308 movq (%rdi), %r15
309 movq %rsi, 40(%rdi)
310 andq $-16, %rdx
311 subq %rdx, %rsp
312 movq %rsp, %rax
313 movq 40(%r15), %r12
314 movq %rax, 8(%rdi)
315 addq %r8, %rax
316 cmpq $0, (%r15)
317 movq %rax, 16(%rdi)
318 je .L65
319 #APP
320 # 248 "iofwide.c" 1
321 ror $2*8+1, %r12
322 xor %fs:48, %r12
323 # 0 "" 2
324 #NO_APP
325 .L65:
326 movq %r12, %rdi
327 call _dl_mcount_wrapper_check
328 pushq $0
329 leaq -64(%rbp), %rdx
330 leaq 8(%rbx), %rsi
331 pushq $0
332 leaq -56(%rbp), %r9
333 movq %r13, %rcx
334 movq %r15, %rdi
335 xorl %r8d, %r8d
336 call *%r12
337 movq -64(%rbp), %rax
338 leaq -40(%rbp), %rsp
339 popq %rbx
340 subq %r14, %rax
341 popq %r12
342 popq %r13
343 popq %r14
344 popq %r15
345 popq %rbp
347 .size __libio_codecvt_length, .-__libio_codecvt_length
348 .section .rodata.str1.8,"aMS",@progbits,1
349 .align 8
350 .type __PRETTY_FUNCTION__.12950, @object
351 .size __PRETTY_FUNCTION__.12950, 10
352 __PRETTY_FUNCTION__.12950:
353 .string "_IO_fwide"
354 .hidden _dl_mcount_wrapper_check
355 .hidden __assert_fail
356 .hidden __wcsmbs_clone_conv