clarify the purpose of this project
[nyanglibc.git] / libio / rewind.s
blob82aa58f9af46ba6461ca1db335963333c8ba02f9
1 .text
2 .p2align 4,,15
3 .globl rewind
4 .hidden rewind
5 .type rewind, @function
6 rewind:
7 .LFB68:
8 pushq %rbp
9 pushq %rbx
10 movq %rdi, %rbx
11 subq $8, %rsp
12 movl (%rdi), %edx
13 andl $32768, %edx
14 jne .L2
15 movq 136(%rdi), %rdi
16 movq %fs:16, %rbp
17 cmpq %rbp, 8(%rdi)
18 je .L3
19 #APP
20 # 34 "rewind.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 %rbp, 8(%rdi)
35 .L3:
36 addl $1, 4(%rdi)
37 .L2:
38 movl $3, %ecx
39 xorl %edx, %edx
40 xorl %esi, %esi
41 movq %rbx, %rdi
42 .LEHB0:
43 call _IO_seekoff_unlocked
44 movl (%rbx), %eax
45 movl %eax, %edx
46 andl $-49, %edx
47 testb $-128, %ah
48 movl %edx, (%rbx)
49 jne .L1
50 movq 136(%rbx), %rdi
51 movl 4(%rdi), %eax
52 subl $1, %eax
53 testl %eax, %eax
54 movl %eax, 4(%rdi)
55 jne .L1
56 movq $0, 8(%rdi)
57 #APP
58 # 885 "libioP.h" 1
59 movl %fs:24,%edx
60 # 0 "" 2
61 #NO_APP
62 testl %edx, %edx
63 jne .L11
64 subl $1, (%rdi)
65 .L1:
66 addq $8, %rsp
67 popq %rbx
68 popq %rbp
69 ret
70 .p2align 4,,10
71 .p2align 3
72 .L4:
73 movl $1, %ecx
74 movl %edx, %eax
75 lock cmpxchgl %ecx, (%rdi)
76 je .L5
77 call __lll_lock_wait_private
78 .LEHE0:
79 jmp .L5
80 .p2align 4,,10
81 .p2align 3
82 .L11:
83 #APP
84 # 885 "libioP.h" 1
85 xchgl %eax, (%rdi)
86 # 0 "" 2
87 #NO_APP
88 cmpl $1, %eax
89 jle .L1
90 xorl %r10d, %r10d
91 movl $1, %edx
92 movl $129, %esi
93 movl $202, %eax
94 #APP
95 # 885 "libioP.h" 1
96 syscall
98 # 0 "" 2
99 #NO_APP
100 jmp .L1
101 .L15:
102 testl $32768, (%rbx)
103 movq %rax, %r8
104 jne .L13
105 movq 136(%rbx), %rdi
106 movl 4(%rdi), %eax
107 subl $1, %eax
108 testl %eax, %eax
109 movl %eax, 4(%rdi)
110 jne .L13
111 movq $0, 8(%rdi)
112 #APP
113 # 885 "libioP.h" 1
114 movl %fs:24,%edx
115 # 0 "" 2
116 #NO_APP
117 testl %edx, %edx
118 jne .L14
119 subl $1, (%rdi)
120 .L13:
121 movq %r8, %rdi
122 .LEHB1:
123 call _Unwind_Resume@PLT
124 .LEHE1:
125 .L14:
126 #APP
127 # 885 "libioP.h" 1
128 xchgl %eax, (%rdi)
129 # 0 "" 2
130 #NO_APP
131 subl $1, %eax
132 jle .L13
133 xorl %r10d, %r10d
134 movl $1, %edx
135 movl $129, %esi
136 movl $202, %eax
137 #APP
138 # 885 "libioP.h" 1
139 syscall
141 # 0 "" 2
142 #NO_APP
143 jmp .L13
144 .LFE68:
145 .globl __gcc_personality_v0
146 .section .gcc_except_table,"a",@progbits
147 .LLSDA68:
148 .byte 0xff
149 .byte 0xff
150 .byte 0x1
151 .uleb128 .LLSDACSE68-.LLSDACSB68
152 .LLSDACSB68:
153 .uleb128 .LEHB0-.LFB68
154 .uleb128 .LEHE0-.LEHB0
155 .uleb128 .L15-.LFB68
156 .uleb128 0
157 .uleb128 .LEHB1-.LFB68
158 .uleb128 .LEHE1-.LEHB1
159 .uleb128 0
160 .uleb128 0
161 .LLSDACSE68:
162 .text
163 .size rewind, .-rewind
164 .hidden DW.ref.__gcc_personality_v0
165 .weak DW.ref.__gcc_personality_v0
166 .section .data.DW.ref.__gcc_personality_v0,"awG",@progbits,DW.ref.__gcc_personality_v0,comdat
167 .align 8
168 .type DW.ref.__gcc_personality_v0, @object
169 .size DW.ref.__gcc_personality_v0, 8
170 DW.ref.__gcc_personality_v0:
171 .quad __gcc_personality_v0
172 .hidden __lll_lock_wait_private
173 .hidden _IO_seekoff_unlocked