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