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