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