clarify the purpose of this project
[nyanglibc.git] / libio / fwide.shared.s
blob389a90518183841166314854aef691e091c3d1ba
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 fwide
9 .type fwide, @function
10 fwide:
11 .LFB71:
12 pushq %r12
13 pushq %rbp
14 testl %esi, %esi
15 pushq %rbx
16 movl 192(%rdi), %eax
17 movq %rdi, %rbx
18 movl %eax, %r8d
19 js .L33
20 je .L1
21 testl %eax, %eax
22 jne .L1
23 testl $32768, (%rdi)
24 jne .L31
25 movq 136(%rdi), %rdi
26 movq %fs:16, %rbp
27 cmpq %rbp, 8(%rdi)
28 jne .L34
29 addl $1, 4(%rdi)
30 .L31:
31 movl $1, %r12d
32 .L7:
33 movl %r12d, %esi
34 movq %rbx, %rdi
35 call _IO_fwide@PLT
36 movl (%rbx), %edx
37 movl %eax, %r8d
38 andl $32768, %edx
39 testl %edx, %edx
40 je .L35
41 .L1:
42 popq %rbx
43 movl %r8d, %eax
44 popq %rbp
45 popq %r12
46 ret
47 .p2align 4,,10
48 .p2align 3
49 .L33:
50 testl %eax, %eax
51 jne .L1
52 movl (%rdi), %ecx
53 movl %ecx, %edx
54 andl $32768, %edx
55 je .L4
56 .L5:
57 movl $-1, %eax
58 movl %eax, 192(%rbx)
59 movl %eax, %r8d
60 .L13:
61 testl %edx, %edx
62 jne .L1
63 .L35:
64 movq 136(%rbx), %rdi
65 subl $1, 4(%rdi)
66 jne .L1
67 movq $0, 8(%rdi)
68 #APP
69 # 885 "../libio/libioP.h" 1
70 movl %fs:24,%eax
71 # 0 "" 2
72 #NO_APP
73 testl %eax, %eax
74 jne .L14
75 subl $1, (%rdi)
76 movl %r8d, %eax
77 popq %rbx
78 popq %rbp
79 popq %r12
80 ret
81 .p2align 4,,10
82 .p2align 3
83 .L4:
84 movq 136(%rdi), %rdi
85 movq %fs:16, %rbp
86 cmpq 8(%rdi), %rbp
87 je .L36
88 movl $-1, %r12d
89 .L19:
90 #APP
91 # 44 "fwide.c" 1
92 movl %fs:24,%eax
93 # 0 "" 2
94 #NO_APP
95 testl %eax, %eax
96 jne .L8
97 movl $1, %edx
98 #APP
99 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
100 cmpxchgl %edx, (%rdi)
101 # 0 "" 2
102 #NO_APP
103 .L9:
104 movq 136(%rbx), %rax
105 addl $1, 4(%rax)
106 cmpl $-1, %r12d
107 movq %rbp, 8(%rax)
108 jne .L7
109 movl 192(%rbx), %eax
110 movl (%rbx), %ecx
111 .L18:
112 andl $32768, %ecx
113 testl %eax, %eax
114 movl %eax, %r8d
115 movl %ecx, %edx
116 jne .L13
117 jmp .L5
118 .p2align 4,,10
119 .p2align 3
120 .L34:
121 movl $1, %r12d
122 jmp .L19
123 .p2align 4,,10
124 .p2align 3
125 .L8:
126 xorl %eax, %eax
127 movl $1, %edx
128 lock cmpxchgl %edx, (%rdi)
129 je .L9
130 .LEHB0:
131 call __lll_lock_wait_private
132 .LEHE0:
133 jmp .L9
134 .p2align 4,,10
135 .p2align 3
136 .L14:
137 #APP
138 # 885 "../libio/libioP.h" 1
139 xchgl %edx, (%rdi)
140 # 0 "" 2
141 #NO_APP
142 cmpl $1, %edx
143 jle .L1
144 xorl %r10d, %r10d
145 movl $1, %edx
146 movl $129, %esi
147 movl $202, %eax
148 #APP
149 # 885 "../libio/libioP.h" 1
150 syscall
152 # 0 "" 2
153 #NO_APP
154 jmp .L1
155 .L36:
156 addl $1, 4(%rdi)
157 jmp .L18
158 .L24:
159 testl $32768, (%rbx)
160 movq %rax, %r8
161 jne .L16
162 movq 136(%rbx), %rdi
163 movl 4(%rdi), %eax
164 subl $1, %eax
165 testl %eax, %eax
166 movl %eax, 4(%rdi)
167 jne .L16
168 movq $0, 8(%rdi)
169 #APP
170 # 885 "../libio/libioP.h" 1
171 movl %fs:24,%edx
172 # 0 "" 2
173 #NO_APP
174 testl %edx, %edx
175 jne .L17
176 subl $1, (%rdi)
177 .L16:
178 movq %r8, %rdi
179 .LEHB1:
180 call _Unwind_Resume@PLT
181 .LEHE1:
182 .L17:
183 #APP
184 # 885 "../libio/libioP.h" 1
185 xchgl %eax, (%rdi)
186 # 0 "" 2
187 #NO_APP
188 subl $1, %eax
189 jle .L16
190 xorl %r10d, %r10d
191 movl $1, %edx
192 movl $129, %esi
193 movl $202, %eax
194 #APP
195 # 885 "../libio/libioP.h" 1
196 syscall
198 # 0 "" 2
199 #NO_APP
200 jmp .L16
201 .LFE71:
202 .globl __gcc_personality_v0
203 .section .gcc_except_table,"a",@progbits
204 .LLSDA71:
205 .byte 0xff
206 .byte 0xff
207 .byte 0x1
208 .uleb128 .LLSDACSE71-.LLSDACSB71
209 .LLSDACSB71:
210 .uleb128 .LEHB0-.LFB71
211 .uleb128 .LEHE0-.LEHB0
212 .uleb128 .L24-.LFB71
213 .uleb128 0
214 .uleb128 .LEHB1-.LFB71
215 .uleb128 .LEHE1-.LEHB1
216 .uleb128 0
217 .uleb128 0
218 .LLSDACSE71:
219 .text
220 .size fwide, .-fwide
221 .hidden DW.ref.__gcc_personality_v0
222 .weak DW.ref.__gcc_personality_v0
223 .section .data.DW.ref.__gcc_personality_v0,"awG",@progbits,DW.ref.__gcc_personality_v0,comdat
224 .align 8
225 .type DW.ref.__gcc_personality_v0, @object
226 .size DW.ref.__gcc_personality_v0, 8
227 DW.ref.__gcc_personality_v0:
228 .quad __gcc_personality_v0
229 .hidden __lll_lock_wait_private