clarify the purpose of this project
[nyanglibc.git] / misc / pwritev64v2.shared.s
blob3f4d1eb959acc73307bad0572523add249062131
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 pwritev64v2
9 .type pwritev64v2, @function
10 pwritev64v2:
11 pushq %r15
12 pushq %r14
13 movl %edx, %r14d
14 pushq %r13
15 pushq %r12
16 movq %rsi, %r13
17 pushq %rbp
18 pushq %rbx
19 movl %edi, %r12d
20 movq %rcx, %rbx
21 movl %r8d, %ebp
22 subq $24, %rsp
23 #APP
24 # 26 "../sysdeps/unix/sysv/linux/pwritev64v2.c" 1
25 movl %fs:24,%eax
26 # 0 "" 2
27 #NO_APP
28 testl %eax, %eax
29 jne .L2
30 movl %r8d, %r9d
31 movq %rcx, %r10
32 xorl %r8d, %r8d
33 movl $328, %eax
34 #APP
35 # 26 "../sysdeps/unix/sysv/linux/pwritev64v2.c" 1
36 syscall
38 # 0 "" 2
39 #NO_APP
40 cmpq $-4096, %rax
41 ja .L11
42 .L3:
43 testq %rax, %rax
44 js .L12
45 .L1:
46 addq $24, %rsp
47 popq %rbx
48 popq %rbp
49 popq %r12
50 popq %r13
51 popq %r14
52 popq %r15
53 ret
54 .p2align 4,,10
55 .p2align 3
56 .L12:
57 movq __libc_errno@gottpoff(%rip), %rcx
58 movl %fs:(%rcx), %edx
59 .L4:
60 cmpl $38, %edx
61 jne .L1
62 testl %ebp, %ebp
63 jne .L13
64 cmpq $-1, %rbx
65 je .L14
66 addq $24, %rsp
67 movq %rbx, %rcx
68 movl %r14d, %edx
69 popq %rbx
70 movq %r13, %rsi
71 movl %r12d, %edi
72 popq %rbp
73 popq %r12
74 popq %r13
75 popq %r14
76 popq %r15
77 jmp __GI_pwritev64
78 .p2align 4,,10
79 .p2align 3
80 .L2:
81 call __libc_enable_asynccancel
82 movl %ebp, %r9d
83 movl %eax, %r15d
84 xorl %r8d, %r8d
85 movq %rbx, %r10
86 movl %r14d, %edx
87 movq %r13, %rsi
88 movl %r12d, %edi
89 movl $328, %eax
90 #APP
91 # 26 "../sysdeps/unix/sysv/linux/pwritev64v2.c" 1
92 syscall
94 # 0 "" 2
95 #NO_APP
96 cmpq $-4096, %rax
97 ja .L15
98 movl %r15d, %edi
99 movq %rax, 8(%rsp)
100 call __libc_disable_asynccancel
101 movq 8(%rsp), %rax
102 jmp .L3
103 .p2align 4,,10
104 .p2align 3
105 .L11:
106 movq __libc_errno@gottpoff(%rip), %rcx
107 movl %eax, %edx
108 movq $-1, %rax
109 negl %edx
110 movl %edx, %fs:(%rcx)
111 jmp .L4
112 .p2align 4,,10
113 .p2align 3
114 .L14:
115 addq $24, %rsp
116 movl %r14d, %edx
117 movq %r13, %rsi
118 popq %rbx
119 movl %r12d, %edi
120 popq %rbp
121 popq %r12
122 popq %r13
123 popq %r14
124 popq %r15
125 jmp __GI___writev
126 .L15:
127 movq __libc_errno@gottpoff(%rip), %rcx
128 negl %eax
129 movl %r15d, %edi
130 movl %eax, %fs:(%rcx)
131 movq %rcx, 8(%rsp)
132 call __libc_disable_asynccancel
133 movq 8(%rsp), %rcx
134 movq $-1, %rax
135 movl %fs:(%rcx), %edx
136 jmp .L4
137 .L13:
138 movl $95, %fs:(%rcx)
139 movq $-1, %rax
140 jmp .L1
141 .size pwritev64v2, .-pwritev64v2
142 .globl pwritev2
143 .set pwritev2,pwritev64v2
144 .hidden __libc_disable_asynccancel
145 .hidden __libc_enable_asynccancel