clarify the purpose of this project
[nyanglibc.git] / shadow / getspnam_r.s
blob4516f38aa58fff9d2ab365fa97ef0f6f36d5344d
1 .text
2 #APP
3 .section .gnu.warning.getspnam_r
4 .previous
5 .section .rodata.str1.1,"aMS",@progbits,1
6 .LC0:
7 .string "getspnam_r"
8 #NO_APP
9 .text
10 .p2align 4,,15
11 .globl __getspnam_r
12 .hidden __getspnam_r
13 .type __getspnam_r, @function
14 __getspnam_r:
15 .LFB72:
16 pushq %r15
17 pushq %r14
18 pushq %r13
19 pushq %r12
20 pushq %rbp
21 pushq %rbx
22 subq $88, %rsp
23 leaq 72(%rsp), %r13
24 leaq 64(%rsp), %r12
25 movq %rsi, 16(%rsp)
26 leaq .LC0(%rip), %rsi
27 movq %rdi, 24(%rsp)
28 movq %rdx, 32(%rsp)
29 movq %rcx, 8(%rsp)
30 xorl %edx, %edx
31 movq %r13, %rcx
32 movq %r12, %rdi
33 movq %r8, 56(%rsp)
34 call __nss_shadow_lookup2
35 testl %eax, %eax
36 movl %eax, 52(%rsp)
37 jne .L2
38 xorl %ebp, %ebp
39 movq $0, 40(%rsp)
40 movq %fs:0, %r15
41 movq __libc_errno@gottpoff(%rip), %rbx
42 jmp .L13
43 .p2align 4,,10
44 .p2align 3
45 .L3:
46 testl %ebp, %ebp
47 je .L6
48 cmpl $1, %eax
49 jne .L7
50 movl $22, %fs:(%rbx)
51 xorl %ebp, %ebp
52 movl $-1, %r14d
53 .p2align 4,,10
54 .p2align 3
55 .L8:
56 leaq .LC0(%rip), %rsi
57 xorl %r9d, %r9d
58 xorl %edx, %edx
59 movl %r14d, %r8d
60 movq %r13, %rcx
61 movq %r12, %rdi
62 call __nss_next2
63 testl %eax, %eax
64 jne .L35
65 .L13:
66 movq 72(%rsp), %rdi
67 call _dl_mcount_wrapper_check
68 leaq (%r15,%rbx), %r8
69 movq 8(%rsp), %rcx
70 movq 32(%rsp), %rdx
71 movq 16(%rsp), %rsi
72 movq 24(%rsp), %rdi
73 call *72(%rsp)
74 cmpl $-2, %eax
75 movl %eax, %r14d
76 jne .L3
77 cmpl $34, %fs:(%rbx)
78 je .L36
79 testl %ebp, %ebp
80 je .L6
81 .L7:
82 movq 64(%rsp), %rax
83 movl $22, %fs:(%rbx)
84 movl 8(%rax), %eax
85 shrl $6, %eax
86 andl $3, %eax
87 cmpl $2, %eax
88 jne .L17
89 .L11:
90 cmpq $0, 40(%rsp)
91 je .L37
92 .L10:
93 movl $22, %fs:(%rbx)
94 movl $-1, %r14d
95 movl $1, %ebp
96 jmp .L8
97 .p2align 4,,10
98 .p2align 3
99 .L6:
100 movq 64(%rsp), %rax
101 leal 4(%r14,%r14), %ecx
102 movl 8(%rax), %eax
103 shrl %cl, %eax
104 andl $3, %eax
105 cmpl $2, %eax
106 jne .L18
107 cmpl $1, %r14d
108 je .L11
109 .L18:
110 xorl %ebp, %ebp
111 jmp .L8
112 .p2align 4,,10
113 .p2align 3
114 .L17:
115 movl $1, %r14d
116 movl $1, %ebp
117 jmp .L8
118 .p2align 4,,10
119 .p2align 3
120 .L35:
121 movq 40(%rsp), %rdi
122 call free@PLT
123 cmpl $1, %r14d
124 movq 56(%rsp), %rax
125 je .L16
126 movq $0, (%rax)
127 jbe .L15
128 movl %fs:(%rbx), %eax
129 cmpl $34, %eax
130 movl %eax, 52(%rsp)
131 je .L38
132 .L1:
133 movl 52(%rsp), %eax
134 addq $88, %rsp
135 popq %rbx
136 popq %rbp
137 popq %r12
138 popq %r13
139 popq %r14
140 popq %r15
142 .p2align 4,,10
143 .p2align 3
144 .L16:
145 movq 16(%rsp), %rdx
146 movq %rdx, (%rax)
147 .L15:
148 movl 52(%rsp), %eax
149 movl %eax, %fs:(%rbx)
150 jmp .L1
151 .p2align 4,,10
152 .p2align 3
153 .L37:
154 movq 8(%rsp), %rdi
155 call malloc@PLT
156 testq %rax, %rax
157 movq %rax, 40(%rsp)
158 jne .L10
159 movq 56(%rsp), %rax
160 movl $12, %fs:(%rbx)
161 movl $12, 52(%rsp)
162 movq $0, (%rax)
163 jmp .L1
164 .p2align 4,,10
165 .p2align 3
166 .L36:
167 movq 40(%rsp), %rdi
168 call free@PLT
169 movq 56(%rsp), %rax
170 movl $34, 52(%rsp)
171 movq $0, (%rax)
172 jmp .L1
173 .L38:
174 cmpl $-2, %r14d
175 je .L1
176 .L19:
177 movl $22, 52(%rsp)
178 jmp .L15
179 .L2:
180 movq 56(%rsp), %rax
181 movq __libc_errno@gottpoff(%rip), %rbx
182 movq $0, (%rax)
183 movl %fs:(%rbx), %eax
184 cmpl $34, %eax
185 movl %eax, 52(%rsp)
186 jne .L1
187 jmp .L19
188 .LFE72:
189 .size __getspnam_r, .-__getspnam_r
190 .globl __new_getspnam_r
191 .set __new_getspnam_r,__getspnam_r
192 .weak getspnam_r
193 .set getspnam_r,__new_getspnam_r
194 .section .gnu.warning.getspnam_r
195 #,"a",@progbits
196 .align 32
197 .type __evoke_link_warning_getspnam_r, @object
198 .size __evoke_link_warning_getspnam_r, 134
199 __evoke_link_warning_getspnam_r:
200 .string "Using 'getspnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking"
201 .hidden _dl_mcount_wrapper_check
202 .hidden __nss_next2
203 .hidden __nss_shadow_lookup2