clarify the purpose of this project
[nyanglibc.git] / misc / preadv64.s
blob314f609b4d09de8748e6c6b64553981b522c4070
1 .text
2 .p2align 4,,15
3 .globl preadv64
4 .hidden preadv64
5 .type preadv64, @function
6 preadv64:
7 movq %rcx, %r10
8 #APP
9 # 26 "../sysdeps/unix/sysv/linux/preadv64.c" 1
10 movl %fs:24,%eax
11 # 0 "" 2
12 #NO_APP
13 testl %eax, %eax
14 jne .L2
15 xorl %r8d, %r8d
16 movl $295, %eax
17 #APP
18 # 26 "../sysdeps/unix/sysv/linux/preadv64.c" 1
19 syscall
21 # 0 "" 2
22 #NO_APP
23 cmpq $-4096, %rax
24 ja .L9
25 rep ret
26 .p2align 4,,10
27 .p2align 3
28 .L2:
29 pushq %r13
30 pushq %r12
31 movl %edx, %r13d
32 pushq %rbp
33 pushq %rbx
34 movq %rcx, %r12
35 movq %rsi, %rbp
36 movl %edi, %ebx
37 subq $24, %rsp
38 call __libc_enable_asynccancel
39 xorl %r8d, %r8d
40 movl %eax, %r9d
41 movq %r12, %r10
42 movl %r13d, %edx
43 movq %rbp, %rsi
44 movl %ebx, %edi
45 movl $295, %eax
46 #APP
47 # 26 "../sysdeps/unix/sysv/linux/preadv64.c" 1
48 syscall
50 # 0 "" 2
51 #NO_APP
52 cmpq $-4096, %rax
53 ja .L10
54 .L4:
55 movl %r9d, %edi
56 movq %rax, 8(%rsp)
57 call __libc_disable_asynccancel
58 movq 8(%rsp), %rax
59 addq $24, %rsp
60 popq %rbx
61 popq %rbp
62 popq %r12
63 popq %r13
64 ret
65 .p2align 4,,10
66 .p2align 3
67 .L9:
68 movq __libc_errno@gottpoff(%rip), %rdx
69 negl %eax
70 movl %eax, %fs:(%rdx)
71 movq $-1, %rax
72 ret
73 .L10:
74 movq __libc_errno@gottpoff(%rip), %rdx
75 negl %eax
76 movl %eax, %fs:(%rdx)
77 movq $-1, %rax
78 jmp .L4
79 .size preadv64, .-preadv64
80 .globl preadv
81 .hidden preadv
82 .set preadv,preadv64
83 .hidden __libc_disable_asynccancel
84 .hidden __libc_enable_asynccancel