clarify the purpose of this project
[nyanglibc.git] / inet / getsourcefilter.shared.s
blobb6c5e0c83f5c04c77a64e0d11fcf942435b85596
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .section .rodata.str1.8,"aMS",@progbits,1
7 .align 8
8 .LC0:
9 .string "../sysdeps/unix/sysv/linux/getsourcefilter.c"
10 .section .rodata.str1.1,"aMS",@progbits,1
11 .LC1:
12 .string "sol_map[cnt].sol != -1"
13 #NO_APP
14 .text
15 .p2align 4,,15
16 .globl __get_sol
17 .hidden __get_sol
18 .type __get_sol, @function
19 __get_sol:
20 leaq sol_map(%rip), %rdx
21 movl $-1, %eax
22 xorl %ecx, %ecx
23 leaq 84(%rdx), %r8
24 jmp .L2
25 .p2align 4,,10
26 .p2align 3
27 .L3:
28 addq $12, %rdx
29 cmpq %r8, %rdx
30 je .L1
31 .L15:
32 movl (%rdx), %ecx
33 cmpl $-1, %ecx
34 je .L14
35 .L2:
36 cmpl %esi, 8(%rdx)
37 jne .L3
38 cmpl %edi, 4(%rdx)
39 je .L6
40 cmpl $-1, %eax
41 cmove %ecx, %eax
42 addq $12, %rdx
43 cmpq %r8, %rdx
44 jne .L15
45 .L1:
46 rep ret
47 .p2align 4,,10
48 .p2align 3
49 .L6:
50 movl %ecx, %eax
51 ret
52 .L14:
53 leaq __PRETTY_FUNCTION__.5554(%rip), %rcx
54 leaq .LC0(%rip), %rsi
55 leaq .LC1(%rip), %rdi
56 subq $8, %rsp
57 movl $70, %edx
58 call __GI___assert_fail
59 .size __get_sol, .-__get_sol
60 .p2align 4,,15
61 .globl getsourcefilter
62 .type getsourcefilter, @function
63 getsourcefilter:
64 pushq %rbp
65 movq %rsp, %rbp
66 pushq %r15
67 pushq %r14
68 pushq %r13
69 pushq %r12
70 movq %rdx, %r14
71 pushq %rbx
72 movl %ecx, %r13d
73 movq %r9, %r15
74 subq $56, %rsp
75 movl (%r9), %r12d
76 movl %edi, -76(%rbp)
77 movl %esi, -72(%rbp)
78 movq %r8, -88(%rbp)
79 movl %r12d, %edx
80 sall $7, %edx
81 leal 144(%rdx), %ebx
82 movq %rbx, %rdi
83 movl %ebx, -52(%rbp)
84 movl %ebx, -68(%rbp)
85 call __GI___libc_alloca_cutoff
86 movl -68(%rbp), %edx
87 movl -72(%rbp), %esi
88 cmpl $4096, %edx
89 jbe .L17
90 testl %eax, %eax
91 je .L26
92 .L17:
93 addq $30, %rbx
94 movl $1, -68(%rbp)
95 shrq $4, %rbx
96 salq $4, %rbx
97 subq %rbx, %rsp
98 leaq 15(%rsp), %rbx
99 andq $-16, %rbx
100 .L19:
101 leaq 8(%rbx), %rdi
102 movl %esi, (%rbx)
103 movl %r13d, %edx
104 movq %r14, %rsi
105 call __GI_memcpy@PLT
106 movzwl (%r14), %edi
107 movl %r12d, 140(%rbx)
108 movl %r13d, %esi
109 call __get_sol
110 cmpl $-1, %eax
111 movl %eax, %r12d
112 jne .L20
113 movq __libc_errno@gottpoff(%rip), %rax
114 movl $22, %fs:(%rax)
115 .L21:
116 movl -68(%rbp), %eax
117 testl %eax, %eax
118 jne .L16
119 movq %rbx, %rdi
120 call free@PLT
121 .L16:
122 leaq -40(%rbp), %rsp
123 movl %r12d, %eax
124 popq %rbx
125 popq %r12
126 popq %r13
127 popq %r14
128 popq %r15
129 popq %rbp
131 .p2align 4,,10
132 .p2align 3
133 .L20:
134 movl -76(%rbp), %edi
135 leaq -52(%rbp), %r8
136 movq %rbx, %rcx
137 movl $48, %edx
138 movl %eax, %esi
139 call __getsockopt
140 testl %eax, %eax
141 movl %eax, %r12d
142 jne .L21
143 movl 136(%rbx), %eax
144 movq -88(%rbp), %rcx
145 leaq 144(%rbx), %rsi
146 movl 140(%rbx), %r13d
147 movq 16(%rbp), %rdi
148 movl %eax, (%rcx)
149 movl (%r15), %edx
150 movq %rdx, %rcx
151 movq %rdx, %rax
152 movl %r13d, %edx
153 salq $7, %rax
154 salq $7, %rdx
155 cmpl %r13d, %ecx
156 cmovb %rax, %rdx
157 call __GI_memcpy@PLT
158 movl %r13d, (%r15)
159 jmp .L21
160 .L26:
161 movq %rbx, %rdi
162 call malloc@PLT
163 testq %rax, %rax
164 movq %rax, %rbx
165 je .L24
166 movl $0, -68(%rbp)
167 movl -72(%rbp), %esi
168 jmp .L19
169 .L24:
170 orl $-1, %r12d
171 jmp .L16
172 .size getsourcefilter, .-getsourcefilter
173 .section .rodata.str1.8
174 .align 8
175 .type __PRETTY_FUNCTION__.5554, @object
176 .size __PRETTY_FUNCTION__.5554, 10
177 __PRETTY_FUNCTION__.5554:
178 .string "__get_sol"
179 .section .rodata
180 .align 32
181 .type sol_map, @object
182 .size sol_map, 84
183 sol_map:
184 .long 0
185 .long 2
186 .long 16
187 .long 41
188 .long 10
189 .long 28
190 .long 257
191 .long 3
192 .long 16
193 .long 256
194 .long 4
195 .long 16
196 .long 258
197 .long 5
198 .long 16
199 .long 260
200 .long 11
201 .long 28
202 .long 263
203 .long 17
204 .long 20
205 .hidden __getsockopt