clarify the purpose of this project
[nyanglibc.git] / posix / spawn_faction_adddup2.shared.s
blobafc9bb22ad43cbd649291047c4eb623b185d57e0
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 __posix_spawn_file_actions_adddup2
9 .hidden __posix_spawn_file_actions_adddup2
10 .type __posix_spawn_file_actions_adddup2, @function
11 __posix_spawn_file_actions_adddup2:
12 pushq %r12
13 pushq %rbp
14 movl %edx, %r12d
15 pushq %rbx
16 movq %rdi, %rbx
17 movl %esi, %edi
18 movl %esi, %ebp
19 call __spawn_valid_fd
20 testb %al, %al
21 je .L4
22 movl %r12d, %edi
23 call __spawn_valid_fd
24 testb %al, %al
25 je .L4
26 movl 4(%rbx), %edx
27 cmpl (%rbx), %edx
28 je .L12
29 .L5:
30 movslq %edx, %rax
31 addl $1, %edx
32 salq $5, %rax
33 addq 8(%rbx), %rax
34 movl $1, (%rax)
35 movl %ebp, 8(%rax)
36 movl %r12d, 12(%rax)
37 movl %edx, 4(%rbx)
38 xorl %eax, %eax
39 popq %rbx
40 popq %rbp
41 popq %r12
42 ret
43 .p2align 4,,10
44 .p2align 3
45 .L4:
46 movl $9, %eax
47 .L1:
48 popq %rbx
49 popq %rbp
50 popq %r12
51 ret
52 .p2align 4,,10
53 .p2align 3
54 .L12:
55 movq %rbx, %rdi
56 call __posix_spawn_file_actions_realloc
57 movl %eax, %edx
58 movl $12, %eax
59 testl %edx, %edx
60 jne .L1
61 movl 4(%rbx), %edx
62 jmp .L5
63 .size __posix_spawn_file_actions_adddup2, .-__posix_spawn_file_actions_adddup2
64 .weak posix_spawn_file_actions_adddup2
65 .set posix_spawn_file_actions_adddup2,__posix_spawn_file_actions_adddup2
66 .hidden __posix_spawn_file_actions_realloc
67 .hidden __spawn_valid_fd