clarify the purpose of this project
[nyanglibc.git] / io / openat64.shared.s
blob9e94ed661b0499ca57f6fafcf67ab5b892872d2e
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 __libc_openat64
9 .type __libc_openat64, @function
10 __libc_openat64:
11 pushq %r12
12 pushq %rbp
13 pushq %rbx
14 subq $96, %rsp
15 testb $64, %dl
16 movq %rcx, 72(%rsp)
17 jne .L2
18 movl %edx, %eax
19 xorl %r10d, %r10d
20 andl $4259840, %eax
21 cmpl $4259840, %eax
22 je .L2
23 .L3:
24 #APP
25 # 45 "../sysdeps/unix/sysv/linux/openat64.c" 1
26 movl %fs:24,%eax
27 # 0 "" 2
28 #NO_APP
29 testl %eax, %eax
30 jne .L6
31 movl $257, %eax
32 #APP
33 # 45 "../sysdeps/unix/sysv/linux/openat64.c" 1
34 syscall
36 # 0 "" 2
37 #NO_APP
38 cmpq $-4096, %rax
39 ja .L14
40 .L1:
41 addq $96, %rsp
42 popq %rbx
43 popq %rbp
44 popq %r12
45 ret
46 .p2align 4,,10
47 .p2align 3
48 .L2:
49 leaq 128(%rsp), %rax
50 movl $24, 24(%rsp)
51 movl 72(%rsp), %r10d
52 movq %rax, 32(%rsp)
53 leaq 48(%rsp), %rax
54 movq %rax, 40(%rsp)
55 jmp .L3
56 .p2align 4,,10
57 .p2align 3
58 .L6:
59 movl %edx, %ebx
60 movq %rsi, %r12
61 movl %edi, %ebp
62 movl %r10d, 12(%rsp)
63 call __libc_enable_asynccancel
64 movl 12(%rsp), %r10d
65 movl %eax, %r8d
66 movl %ebx, %edx
67 movq %r12, %rsi
68 movl %ebp, %edi
69 movl $257, %eax
70 #APP
71 # 45 "../sysdeps/unix/sysv/linux/openat64.c" 1
72 syscall
74 # 0 "" 2
75 #NO_APP
76 cmpq $-4096, %rax
77 ja .L15
78 .L10:
79 movl %r8d, %edi
80 movl %eax, 12(%rsp)
81 call __libc_disable_asynccancel
82 movl 12(%rsp), %eax
83 addq $96, %rsp
84 popq %rbx
85 popq %rbp
86 popq %r12
87 ret
88 .p2align 4,,10
89 .p2align 3
90 .L14:
91 movq __libc_errno@gottpoff(%rip), %rdx
92 negl %eax
93 movl %eax, %fs:(%rdx)
94 movl $-1, %eax
95 jmp .L1
96 .L15:
97 movq __libc_errno@gottpoff(%rip), %rdx
98 negl %eax
99 movl %eax, %fs:(%rdx)
100 movl $-1, %eax
101 jmp .L10
102 .size __libc_openat64, .-__libc_openat64
103 .weak openat
104 .set openat,__libc_openat64
105 .globl __GI___openat
106 .hidden __GI___openat
107 .set __GI___openat,__libc_openat64
108 .weak __openat
109 .set __openat,__GI___openat
110 .weak openat64
111 .set openat64,__libc_openat64
112 .globl __GI___openat64
113 .hidden __GI___openat64
114 .set __GI___openat64,__libc_openat64
115 .weak __openat64
116 .set __openat64,__GI___openat64
117 .hidden __libc_disable_asynccancel
118 .hidden __libc_enable_asynccancel