clarify the purpose of this project
[nyanglibc.git] / libio / ioputs.shared.s
blob73791ebf744c10861a67faf43144585e2035bad2
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_puts
9 .hidden __GI__IO_puts
10 .type __GI__IO_puts, @function
11 __GI__IO_puts:
12 .LFB68:
13 pushq %r14
14 pushq %r13
15 movq %rdi, %r13
16 pushq %r12
17 pushq %rbp
18 pushq %rbx
19 call __GI_strlen
20 movq stdout@GOTPCREL(%rip), %r12
21 movq %rax, %rbx
22 movq (%r12), %rbp
23 movl 0(%rbp), %edx
24 andl $32768, %edx
25 jne .L22
26 movq 136(%rbp), %rcx
27 movq %fs:16, %r14
28 cmpq %r14, 8(%rcx)
29 je .L23
30 #APP
31 # 36 "ioputs.c" 1
32 movl %fs:24,%eax
33 # 0 "" 2
34 #NO_APP
35 testl %eax, %eax
36 jne .L4
37 movl $1, %edx
38 #APP
39 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
40 cmpxchgl %edx, (%rcx)
41 # 0 "" 2
42 #NO_APP
43 .L5:
44 movq 136(%rbp), %rcx
45 movq (%r12), %rdi
46 movq %r14, 8(%rcx)
47 .L3:
48 movl 192(%rdi), %eax
49 addl $1, 4(%rcx)
50 testl %eax, %eax
51 je .L30
52 .L8:
53 cmpl $-1, %eax
54 je .L9
55 .L12:
56 movl $-1, %ebx
57 jmp .L10
58 .p2align 4,,10
59 .p2align 3
60 .L22:
61 movq %rbp, %rdi
62 movl 192(%rdi), %eax
63 testl %eax, %eax
64 jne .L8
65 .L30:
66 movl $-1, 192(%rdi)
67 .L9:
68 movq 216(%rdi), %r14
69 leaq __start___libc_IO_vtables(%rip), %rdx
70 leaq __stop___libc_IO_vtables(%rip), %rax
71 subq %rdx, %rax
72 movq %r14, %rsi
73 subq %rdx, %rsi
74 cmpq %rsi, %rax
75 jbe .L31
76 .L11:
77 movq %rbx, %rdx
78 movq %r13, %rsi
79 .LEHB0:
80 call *56(%r14)
81 cmpq %rax, %rbx
82 jne .L12
83 movq (%r12), %rdi
84 movq 40(%rdi), %rax
85 cmpq 48(%rdi), %rax
86 jnb .L32
87 leaq 1(%rax), %rdx
88 movq %rdx, 40(%rdi)
89 movb $10, (%rax)
90 .L14:
91 addq $1, %rbx
92 movl $2147483647, %eax
93 cmpq $2147483647, %rbx
94 cmova %rax, %rbx
95 .L10:
96 testl $32768, 0(%rbp)
97 jne .L1
98 movq 136(%rbp), %rdi
99 movl 4(%rdi), %eax
100 subl $1, %eax
101 testl %eax, %eax
102 movl %eax, 4(%rdi)
103 jne .L1
104 movq $0, 8(%rdi)
105 #APP
106 # 885 "libioP.h" 1
107 movl %fs:24,%edx
108 # 0 "" 2
109 #NO_APP
110 testl %edx, %edx
111 jne .L18
112 subl $1, (%rdi)
113 .L1:
114 movl %ebx, %eax
115 popq %rbx
116 popq %rbp
117 popq %r12
118 popq %r13
119 popq %r14
121 .p2align 4,,10
122 .p2align 3
123 .L23:
124 movq %rbp, %rdi
125 jmp .L3
126 .p2align 4,,10
127 .p2align 3
128 .L31:
129 call _IO_vtable_check
130 movq (%r12), %rdi
131 jmp .L11
132 .p2align 4,,10
133 .p2align 3
134 .L32:
135 movl $10, %esi
136 call __GI___overflow
137 cmpl $-1, %eax
138 jne .L14
139 jmp .L12
140 .p2align 4,,10
141 .p2align 3
142 .L4:
143 movl $1, %esi
144 movl %edx, %eax
145 lock cmpxchgl %esi, (%rcx)
146 je .L5
147 movq %rcx, %rdi
148 call __lll_lock_wait_private
149 .LEHE0:
150 jmp .L5
151 .p2align 4,,10
152 .p2align 3
153 .L18:
154 #APP
155 # 885 "libioP.h" 1
156 xchgl %eax, (%rdi)
157 # 0 "" 2
158 #NO_APP
159 cmpl $1, %eax
160 jle .L1
161 xorl %r10d, %r10d
162 movl $1, %edx
163 movl $129, %esi
164 movl $202, %eax
165 #APP
166 # 885 "libioP.h" 1
167 syscall
169 # 0 "" 2
170 #NO_APP
171 jmp .L1
172 .L24:
173 testl $32768, 0(%rbp)
174 movq %rax, %r8
175 jne .L20
176 movq 136(%rbp), %rdi
177 movl 4(%rdi), %eax
178 subl $1, %eax
179 testl %eax, %eax
180 movl %eax, 4(%rdi)
181 jne .L20
182 movq $0, 8(%rdi)
183 #APP
184 # 885 "libioP.h" 1
185 movl %fs:24,%edx
186 # 0 "" 2
187 #NO_APP
188 testl %edx, %edx
189 jne .L21
190 subl $1, (%rdi)
191 .L20:
192 movq %r8, %rdi
193 .LEHB1:
194 call _Unwind_Resume@PLT
195 .LEHE1:
196 .L21:
197 #APP
198 # 885 "libioP.h" 1
199 xchgl %eax, (%rdi)
200 # 0 "" 2
201 #NO_APP
202 subl $1, %eax
203 jle .L20
204 xorl %r10d, %r10d
205 movl $1, %edx
206 movl $129, %esi
207 movl $202, %eax
208 #APP
209 # 885 "libioP.h" 1
210 syscall
212 # 0 "" 2
213 #NO_APP
214 jmp .L20
215 .LFE68:
216 .globl __gcc_personality_v0
217 .section .gcc_except_table,"a",@progbits
218 .LLSDA68:
219 .byte 0xff
220 .byte 0xff
221 .byte 0x1
222 .uleb128 .LLSDACSE68-.LLSDACSB68
223 .LLSDACSB68:
224 .uleb128 .LEHB0-.LFB68
225 .uleb128 .LEHE0-.LEHB0
226 .uleb128 .L24-.LFB68
227 .uleb128 0
228 .uleb128 .LEHB1-.LFB68
229 .uleb128 .LEHE1-.LEHB1
230 .uleb128 0
231 .uleb128 0
232 .LLSDACSE68:
233 .text
234 .size __GI__IO_puts, .-__GI__IO_puts
235 .weak puts
236 .set puts,__GI__IO_puts
237 .globl _IO_puts
238 .set _IO_puts,__GI__IO_puts
239 .hidden DW.ref.__gcc_personality_v0
240 .weak DW.ref.__gcc_personality_v0
241 .section .data.DW.ref.__gcc_personality_v0,"awG",@progbits,DW.ref.__gcc_personality_v0,comdat
242 .align 8
243 .type DW.ref.__gcc_personality_v0, @object
244 .size DW.ref.__gcc_personality_v0, 8
245 DW.ref.__gcc_personality_v0:
246 .quad __gcc_personality_v0
247 .hidden __lll_lock_wait_private
248 .hidden _IO_vtable_check
249 .hidden __stop___libc_IO_vtables
250 .hidden __start___libc_IO_vtables