clarify the purpose of this project
[nyanglibc.git] / libio / wmemstream.s
blobebb74405f7917b76fae0ec9058aca23347cd9352
1 .text
2 .p2align 4,,15
3 .type _IO_wmem_sync, @function
4 _IO_wmem_sync:
5 movq 160(%rdi), %rax
6 pushq %rbx
7 movq %rdi, %rbx
8 movq 40(%rax), %rsi
9 cmpq %rsi, 32(%rax)
10 je .L5
11 .L2:
12 movq 24(%rax), %rcx
13 movq 240(%rbx), %rdx
14 movq %rcx, (%rdx)
15 movq 32(%rax), %rdx
16 subq 24(%rax), %rdx
17 movq 248(%rbx), %rcx
18 movq %rdx, %rax
19 sarq $2, %rax
20 movq %rax, (%rcx)
21 xorl %eax, %eax
22 popq %rbx
23 ret
24 .p2align 4,,10
25 .p2align 3
26 .L5:
27 xorl %esi, %esi
28 call _IO_wstr_overflow@PLT
29 movq 160(%rbx), %rax
30 subq $4, 32(%rax)
31 jmp .L2
32 .size _IO_wmem_sync, .-_IO_wmem_sync
33 .p2align 4,,15
34 .type _IO_wmem_finish, @function
35 _IO_wmem_finish:
36 pushq %rbp
37 pushq %rbx
38 movq %rdi, %rbx
39 subq $8, %rsp
40 movq 160(%rdi), %rax
41 movq 240(%rbx), %rbp
42 movq 24(%rax), %rdi
43 movq 32(%rax), %rax
44 subq %rdi, %rax
45 sarq $2, %rax
46 leaq 4(,%rax,4), %rsi
47 call realloc@PLT
48 movq %rax, 0(%rbp)
49 movq 240(%rbx), %rax
50 movq (%rax), %rcx
51 testq %rcx, %rcx
52 je .L7
53 movq 160(%rbx), %rdx
54 movq 32(%rdx), %rax
55 subq 24(%rdx), %rax
56 movl $0, (%rcx,%rax)
57 movq 248(%rbx), %rcx
58 sarq $2, %rax
59 movq %rax, (%rcx)
60 movq $0, 48(%rdx)
61 .L7:
62 addq $8, %rsp
63 movq %rbx, %rdi
64 xorl %esi, %esi
65 popq %rbx
66 popq %rbp
67 jmp _IO_wstr_finish@PLT
68 .size _IO_wmem_finish, .-_IO_wmem_finish
69 .p2align 4,,15
70 .globl open_wmemstream
71 .type open_wmemstream, @function
72 open_wmemstream:
73 pushq %r13
74 pushq %r12
75 movq %rdi, %r13
76 pushq %rbp
77 pushq %rbx
78 movl $504, %edi
79 movq %rsi, %r12
80 subq $8, %rsp
81 call malloc@PLT
82 testq %rax, %rax
83 je .L15
84 movq %rax, %rbx
85 leaq 256(%rax), %rax
86 movl $8192, %esi
87 movl $1, %edi
88 movq %rax, 136(%rbx)
89 call calloc@PLT
90 testq %rax, %rax
91 movq %rax, %rbp
92 je .L17
93 leaq 272(%rbx), %rcx
94 leaq _IO_wmem_jumps(%rip), %r8
95 xorl %edx, %edx
96 xorl %esi, %esi
97 movq %rbx, %rdi
98 call _IO_no_init@PLT
99 movl $1, %esi
100 movq %rbx, %rdi
101 call _IO_fwide@PLT
102 movl $2048, %edx
103 movq %rbp, %rcx
104 movq %rbp, %rsi
105 movq %rbx, %rdi
106 call _IO_wstr_init_static@PLT
107 movq malloc@GOTPCREL(%rip), %rdx
108 movl 116(%rbx), %eax
109 movq %r13, 240(%rbx)
110 movq %r12, 248(%rbx)
111 movq %rdx, 224(%rbx)
112 movq free@GOTPCREL(%rip), %rdx
113 andl $-9, %eax
114 orb $-128, %al
115 movl %eax, 116(%rbx)
116 movq %rdx, 232(%rbx)
117 .L12:
118 addq $8, %rsp
119 movq %rbx, %rax
120 popq %rbx
121 popq %rbp
122 popq %r12
123 popq %r13
125 .p2align 4,,10
126 .p2align 3
127 .L15:
128 xorl %ebx, %ebx
129 jmp .L12
130 .p2align 4,,10
131 .p2align 3
132 .L17:
133 movq %rbx, %rdi
134 xorl %ebx, %ebx
135 call free@PLT
136 jmp .L12
137 .size open_wmemstream, .-open_wmemstream
138 .section __libc_IO_vtables,"aw",@progbits
139 .align 32
140 .type _IO_wmem_jumps, @object
141 .size _IO_wmem_jumps, 168
142 _IO_wmem_jumps:
143 .quad 0
144 .quad 0
145 .quad _IO_wmem_finish
146 .quad _IO_wstr_overflow
147 .quad _IO_wstr_underflow
148 .quad _IO_wdefault_uflow
149 .quad _IO_wstr_pbackfail
150 .quad _IO_wdefault_xsputn
151 .quad _IO_wdefault_xsgetn
152 .quad _IO_wstr_seekoff
153 .quad _IO_default_seekpos
154 .quad _IO_default_setbuf
155 .quad _IO_wmem_sync
156 .quad _IO_wdefault_doallocate
157 .quad _IO_default_read
158 .quad _IO_default_write
159 .quad _IO_default_seek
160 .quad _IO_default_sync
161 .quad _IO_default_stat
162 .quad _IO_default_showmanyc
163 .quad _IO_default_imbue
164 .hidden _IO_wdefault_doallocate
165 .hidden _IO_wdefault_xsgetn
166 .hidden _IO_wdefault_xsputn
167 .hidden _IO_wdefault_uflow