clarify the purpose of this project
[nyanglibc.git] / libio / feof.shared.s
blob323cf5ff0af1d862f1f71a68054d883830e740f3
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 _IO_feof
9 .type _IO_feof, @function
10 _IO_feof:
11 testb $-128, 116(%rdi)
12 movl (%rdi), %eax
13 je .L4
14 movl %eax, %edx
15 andl $32768, %edx
16 jne .L4
17 pushq %rbp
18 pushq %rbx
19 subq $8, %rsp
20 movq 136(%rdi), %rcx
21 movq %fs:16, %rbp
22 cmpq 8(%rcx), %rbp
23 je .L5
24 movq %rdi, %rbx
25 #APP
26 # 37 "feof.c" 1
27 movl %fs:24,%eax
28 # 0 "" 2
29 #NO_APP
30 testl %eax, %eax
31 jne .L6
32 movl $1, %edx
33 #APP
34 # 47 "../sysdeps/unix/sysv/linux/x86/lowlevellock.h" 1
35 cmpxchgl %edx, (%rcx)
36 # 0 "" 2
37 #NO_APP
38 .L7:
39 movl (%rbx), %esi
40 movq 136(%rbx), %rcx
41 movl %esi, %r8d
42 movq %rbp, 8(%rcx)
43 movl 4(%rcx), %edx
44 shrl $4, %r8d
45 andl $1, %r8d
46 andl $32768, %esi
47 jne .L18
48 .L8:
49 testl %edx, %edx
50 jne .L1
51 movq $0, 8(%rcx)
52 #APP
53 # 39 "feof.c" 1
54 movl %fs:24,%eax
55 # 0 "" 2
56 #NO_APP
57 testl %eax, %eax
58 jne .L9
59 subl $1, (%rcx)
60 .L1:
61 addq $8, %rsp
62 movl %r8d, %eax
63 popq %rbx
64 popq %rbp
65 ret
66 .p2align 4,,10
67 .p2align 3
68 .L4:
69 shrl $4, %eax
70 andl $1, %eax
71 ret
72 .p2align 4,,10
73 .p2align 3
74 .L5:
75 shrl $4, %eax
76 movl 4(%rcx), %edx
77 andl $1, %eax
78 movl %eax, %r8d
79 jmp .L8
80 .p2align 4,,10
81 .p2align 3
82 .L6:
83 movl $1, %esi
84 movl %edx, %eax
85 lock cmpxchgl %esi, (%rcx)
86 je .L7
87 movq %rcx, %rdi
88 call __lll_lock_wait_private
89 jmp .L7
90 .p2align 4,,10
91 .p2align 3
92 .L9:
93 #APP
94 # 39 "feof.c" 1
95 xchgl %edx, (%rcx)
96 # 0 "" 2
97 #NO_APP
98 cmpl $1, %edx
99 jle .L1
100 xorl %r10d, %r10d
101 movl $1, %edx
102 movl $129, %esi
103 movq %rcx, %rdi
104 movl $202, %eax
105 #APP
106 # 39 "feof.c" 1
107 syscall
109 # 0 "" 2
110 #NO_APP
111 jmp .L1
112 .L18:
113 addl $1, %edx
114 movl %edx, 4(%rcx)
115 jmp .L1
116 .size _IO_feof, .-_IO_feof
117 .weak feof
118 .set feof,_IO_feof
119 .hidden __lll_lock_wait_private