clarify the purpose of this project
[nyanglibc.git] / posix / execlp.shared.s
blob5fca29db2489be108980921d649addb4c8c31f8b
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 __GI_execlp
9 .hidden __GI_execlp
10 .type __GI_execlp, @function
11 __GI_execlp:
12 pushq %rbp
13 movq %rsi, %r10
14 movq %rsp, %rbp
15 pushq %rbx
16 leaq 16(%rbp), %rax
17 leaq 16(%rbp), %rsi
18 subq $88, %rsp
19 movq %rdx, -48(%rbp)
20 movq %r8, -32(%rbp)
21 movq %rax, -80(%rbp)
22 leaq -64(%rbp), %rax
23 movq %rcx, -40(%rbp)
24 movq %r9, -24(%rbp)
25 movl $16, -88(%rbp)
26 movl $16, %edx
27 movq %rax, -72(%rbp)
28 movq %rax, %r8
29 movl $1, %eax
30 .p2align 4,,10
31 .p2align 3
32 .L2:
33 cmpl $47, %edx
34 ja .L5
35 movl %edx, %ecx
36 addl $8, %edx
37 addq %r8, %rcx
38 .L6:
39 cmpq $0, (%rcx)
40 je .L22
41 cmpq $2147483647, %rax
42 je .L23
43 addq $1, %rax
44 jmp .L2
45 .p2align 4,,10
46 .p2align 3
47 .L22:
48 leaq 8(,%rax,8), %rcx
49 movq %rsp, %rbx
50 leaq 16(%rbp), %rdx
51 movl $16, -88(%rbp)
52 movl $16, %r8d
53 xorl %r9d, %r9d
54 leaq 22(%rcx), %rax
55 movq %rdx, -80(%rbp)
56 leaq -64(%rbp), %rdx
57 andq $-16, %rax
58 movq %rdx, -72(%rbp)
59 movq %rdx, %r11
60 subq %rax, %rsp
61 leaq 7(%rsp), %rax
62 shrq $3, %rax
63 leaq 0(,%rax,8), %rsi
64 movq %r10, 0(,%rax,8)
65 leaq 16(%rbp), %r10
66 leaq 8(%rsi), %rax
67 addq %rsi, %rcx
68 .p2align 4,,10
69 .p2align 3
70 .L11:
71 cmpl $47, %r8d
72 ja .L9
73 movl %r8d, %edx
74 movl $1, %r9d
75 addl $8, %r8d
76 addq %r11, %rdx
77 .L10:
78 movq (%rdx), %rdx
79 addq $8, %rax
80 movq %rdx, -8(%rax)
81 cmpq %rcx, %rax
82 jne .L11
83 testb %r9b, %r9b
84 jne .L24
85 .L12:
86 movq __environ@GOTPCREL(%rip), %rax
87 movq (%rax), %rdx
88 call __execvpe
89 movq %rbx, %rsp
90 movq -8(%rbp), %rbx
91 leave
92 ret
93 .L23:
94 movq __libc_errno@gottpoff(%rip), %rax
95 movq -8(%rbp), %rbx
96 movl $7, %fs:(%rax)
97 movl $-1, %eax
98 leave
99 ret
100 .L9:
101 movq %r10, %rdx
102 addq $8, %r10
103 jmp .L10
104 .L5:
105 movq %rsi, %rcx
106 addq $8, %rsi
107 jmp .L6
108 .L24:
109 movl %r8d, -88(%rbp)
110 jmp .L12
111 .size __GI_execlp, .-__GI_execlp
112 .globl execlp
113 .set execlp,__GI_execlp
114 .hidden __execvpe