clarify the purpose of this project
[nyanglibc.git] / rt / aio_fsync.s
blob71fa1bc81edf171875f214779ba07ac09fdf2d6f
1 .text
2 .p2align 4,,15
3 .globl aio_fsync
4 .type aio_fsync, @function
5 aio_fsync:
6 movl %edi, %eax
7 andl $-1048577, %eax
8 cmpl $4096, %eax
9 jne .L11
10 pushq %rbp
11 pushq %rbx
12 movq %rsi, %rbp
13 movl %edi, %ebx
14 xorl %eax, %eax
15 movl $3, %esi
16 subq $8, %rsp
17 movl 0(%rbp), %edi
18 call fcntl@PLT
19 cmpl $-1, %eax
20 je .L12
21 xorl %esi, %esi
22 cmpl $1052672, %ebx
23 movq %rbp, %rdi
24 sete %sil
25 addl $3, %esi
26 call __aio_enqueue_request@PLT
27 testq %rax, %rax
28 sete %al
29 movzbl %al, %eax
30 negl %eax
31 .L1:
32 addq $8, %rsp
33 popq %rbx
34 popq %rbp
35 ret
36 .p2align 4,,10
37 .p2align 3
38 .L12:
39 movq errno@gottpoff(%rip), %rdx
40 movl $9, %fs:(%rdx)
41 jmp .L1
42 .p2align 4,,10
43 .p2align 3
44 .L11:
45 movq errno@gottpoff(%rip), %rax
46 movl $22, %fs:(%rax)
47 movl $-1, %eax
48 ret
49 .size aio_fsync, .-aio_fsync
50 .weak aio_fsync64
51 .set aio_fsync64,aio_fsync