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