clarify the purpose of this project
[nyanglibc.git] / libio / iofsetpos.s
blob8b72965eeb3db4434b0e811d27206e927df9a5fe
1 .text
2 .p2align 4,,15
3 .globl _IO_new_fsetpos
4 .type _IO_new_fsetpos, @function
5 _IO_new_fsetpos:
6 .LFB68:
7 pushq %r12
8 pushq %rbp
9 movq %rsi, %rbp
10 pushq %rbx
11 movl (%rdi), %edx
12 movq %rdi, %rbx
13 andl $32768, %edx
14 jne .L2
15 movq 136(%rdi), %rdi
16 movq %fs:16, %r12
17 cmpq %r12, 8(%rdi)
18 je .L3
19 #APP
20 # 48 "iofsetpos.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 movq 0(%rbp), %rsi
39 movl $3, %edx
40 movq %rbx, %rdi
41 .LEHB0:
42 call _IO_seekpos_unlocked
43 cmpq $-1, %rax
44 je .L24
45 movl 192(%rbx), %eax
46 testl %eax, %eax
47 jg .L10
48 .L22:
49 xorl %r8d, %r8d
50 .L9:
51 testl $32768, (%rbx)
52 jne .L1
53 movq 136(%rbx), %rdi
54 movl 4(%rdi), %eax
55 leal -1(%rax), %edx
56 testl %edx, %edx
57 movl %edx, 4(%rdi)
58 jne .L1
59 movq $0, 8(%rdi)
60 #APP
61 # 885 "../libio/libioP.h" 1
62 movl %fs:24,%eax
63 # 0 "" 2
64 #NO_APP
65 testl %eax, %eax
66 jne .L15
67 subl $1, (%rdi)
68 .L1:
69 popq %rbx
70 movl %r8d, %eax
71 popq %rbp
72 popq %r12
73 ret
74 .p2align 4,,10
75 .p2align 3
76 .L10:
77 movq 152(%rbx), %rdi
78 call __libio_codecvt_encoding
79 testl %eax, %eax
80 jns .L22
81 movq 160(%rbx), %rax
82 movq 8(%rbp), %rdx
83 movq %rdx, 88(%rax)
84 jmp .L22
85 .p2align 4,,10
86 .p2align 3
87 .L24:
88 movq __libc_errno@gottpoff(%rip), %rdx
89 movl %eax, %r8d
90 movl %fs:(%rdx), %ecx
91 testl %ecx, %ecx
92 jne .L9
93 movl $5, %fs:(%rdx)
94 jmp .L9
95 .p2align 4,,10
96 .p2align 3
97 .L4:
98 movl $1, %ecx
99 movl %edx, %eax
100 lock cmpxchgl %ecx, (%rdi)
101 je .L5
102 call __lll_lock_wait_private
103 .LEHE0:
104 jmp .L5
105 .p2align 4,,10
106 .p2align 3
107 .L15:
108 #APP
109 # 885 "../libio/libioP.h" 1
110 xchgl %edx, (%rdi)
111 # 0 "" 2
112 #NO_APP
113 cmpl $1, %edx
114 jle .L1
115 xorl %r10d, %r10d
116 movl $1, %edx
117 movl $129, %esi
118 movl $202, %eax
119 #APP
120 # 885 "../libio/libioP.h" 1
121 syscall
123 # 0 "" 2
124 #NO_APP
125 jmp .L1
126 .L20:
127 testl $32768, (%rbx)
128 movq %rax, %r8
129 jne .L17
130 movq 136(%rbx), %rdi
131 movl 4(%rdi), %eax
132 subl $1, %eax
133 testl %eax, %eax
134 movl %eax, 4(%rdi)
135 jne .L17
136 movq $0, 8(%rdi)
137 #APP
138 # 885 "../libio/libioP.h" 1
139 movl %fs:24,%edx
140 # 0 "" 2
141 #NO_APP
142 testl %edx, %edx
143 jne .L18
144 subl $1, (%rdi)
145 .L17:
146 movq %r8, %rdi
147 .LEHB1:
148 call _Unwind_Resume@PLT
149 .LEHE1:
150 .L18:
151 #APP
152 # 885 "../libio/libioP.h" 1
153 xchgl %eax, (%rdi)
154 # 0 "" 2
155 #NO_APP
156 subl $1, %eax
157 jle .L17
158 xorl %r10d, %r10d
159 movl $1, %edx
160 movl $129, %esi
161 movl $202, %eax
162 #APP
163 # 885 "../libio/libioP.h" 1
164 syscall
166 # 0 "" 2
167 #NO_APP
168 jmp .L17
169 .LFE68:
170 .globl __gcc_personality_v0
171 .section .gcc_except_table,"a",@progbits
172 .LLSDA68:
173 .byte 0xff
174 .byte 0xff
175 .byte 0x1
176 .uleb128 .LLSDACSE68-.LLSDACSB68
177 .LLSDACSB68:
178 .uleb128 .LEHB0-.LFB68
179 .uleb128 .LEHE0-.LEHB0
180 .uleb128 .L20-.LFB68
181 .uleb128 0
182 .uleb128 .LEHB1-.LFB68
183 .uleb128 .LEHE1-.LEHB1
184 .uleb128 0
185 .uleb128 0
186 .LLSDACSE68:
187 .text
188 .size _IO_new_fsetpos, .-_IO_new_fsetpos
189 .globl _IO_new_fsetpos64
190 .set _IO_new_fsetpos64,_IO_new_fsetpos
191 .weak _IO_fsetpos64
192 .set _IO_fsetpos64,_IO_new_fsetpos64
193 .globl __new_fsetpos64
194 .set __new_fsetpos64,_IO_new_fsetpos64
195 .weak fsetpos64
196 .set fsetpos64,__new_fsetpos64
197 .weak _IO_fsetpos
198 .set _IO_fsetpos,_IO_new_fsetpos
199 .globl __new_fsetpos
200 .set __new_fsetpos,_IO_new_fsetpos
201 .weak fsetpos
202 .set fsetpos,__new_fsetpos
203 .hidden DW.ref.__gcc_personality_v0
204 .weak DW.ref.__gcc_personality_v0
205 .section .data.DW.ref.__gcc_personality_v0,"awG",@progbits,DW.ref.__gcc_personality_v0,comdat
206 .align 8
207 .type DW.ref.__gcc_personality_v0, @object
208 .size DW.ref.__gcc_personality_v0, 8
209 DW.ref.__gcc_personality_v0:
210 .quad __gcc_personality_v0
211 .hidden __lll_lock_wait_private
212 .hidden __libio_codecvt_encoding
213 .hidden _IO_seekpos_unlocked