clarify the purpose of this project
[nyanglibc.git] / dirent / fdopendir.shared.s
blob5b1d5aa1c323f9d01fc8c9e5cb91ae001c271ff3
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 __fdopendir
9 .hidden __fdopendir
10 .type __fdopendir, @function
11 __fdopendir:
12 pushq %rbp
13 pushq %rbx
14 movl %edi, %ebx
15 subq $152, %rsp
16 movq %rsp, %rbp
17 movq %rbp, %rsi
18 call __GI___fstat64
19 testl %eax, %eax
20 js .L11
21 movl 24(%rsp), %eax
22 andl $61440, %eax
23 cmpl $16384, %eax
24 jne .L13
25 xorl %eax, %eax
26 movl $3, %esi
27 movl %ebx, %edi
28 call __GI___fcntl64_nocancel
29 cmpl $-1, %eax
30 je .L11
31 movl %eax, %edx
32 andl $3, %edx
33 cmpl $1, %edx
34 je .L14
35 movq %rbp, %rcx
36 movl %eax, %edx
37 xorl %esi, %esi
38 movl %ebx, %edi
39 call __alloc_dir
40 .L1:
41 addq $152, %rsp
42 popq %rbx
43 popq %rbp
44 ret
45 .p2align 4,,10
46 .p2align 3
47 .L13:
48 movq __libc_errno@gottpoff(%rip), %rax
49 movl $20, %fs:(%rax)
50 .L11:
51 addq $152, %rsp
52 xorl %eax, %eax
53 popq %rbx
54 popq %rbp
55 ret
56 .p2align 4,,10
57 .p2align 3
58 .L14:
59 movq __libc_errno@gottpoff(%rip), %rax
60 movl $22, %fs:(%rax)
61 xorl %eax, %eax
62 jmp .L1
63 .size __fdopendir, .-__fdopendir
64 .weak fdopendir
65 .set fdopendir,__fdopendir
66 .hidden __alloc_dir