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