clarify the purpose of this project
[nyanglibc.git] / sunrpc / compat-rpc_thread.shared.s
blob0cd2add81b35b5eb4fa6efaad01e424f48c0c124
1 .text
2 #APP
3 memmove = __GI_memmove
4 memset = __GI_memset
5 memcpy = __GI_memcpy
6 .symver __EI___rpc_thread_svc_fdset, __rpc_thread_svc_fdset@GLIBC_2.2.5
7 .symver __EI___rpc_thread_createerr, __rpc_thread_createerr@GLIBC_2.2.5
8 #NO_APP
9 .p2align 4,,15
10 .type rpc_thread_multi, @function
11 rpc_thread_multi:
12 movq thread_rpc_vars@gottpoff(%rip), %rax
13 leaq __libc_tsd_RPC_VARS_mem(%rip), %rdx
14 movq %rdx, %fs:(%rax)
15 ret
16 .size rpc_thread_multi, .-rpc_thread_multi
17 .p2align 4,,15
18 .globl __rpc_thread_destroy
19 .hidden __rpc_thread_destroy
20 .type __rpc_thread_destroy, @function
21 __rpc_thread_destroy:
22 pushq %rbp
23 pushq %rbx
24 subq $8, %rsp
25 movq thread_rpc_vars@gottpoff(%rip), %rbp
26 movq %fs:0(%rbp), %rbx
27 testq %rbx, %rbx
28 je .L3
29 call __rpc_thread_svc_cleanup
30 call __rpc_thread_clnt_cleanup
31 call __rpc_thread_key_cleanup
32 movq 176(%rbx), %rdi
33 call free@PLT
34 movq 184(%rbx), %rdi
35 call free@PLT
36 movq 240(%rbx), %rdi
37 call free@PLT
38 movq 208(%rbx), %rdi
39 call free@PLT
40 movq 216(%rbx), %rdi
41 call free@PLT
42 movq 224(%rbx), %rdi
43 call free@PLT
44 movq 160(%rbx), %rdi
45 call free@PLT
46 leaq __libc_tsd_RPC_VARS_mem(%rip), %rax
47 cmpq %rax, %rbx
48 je .L5
49 movq %rbx, %rdi
50 call free@PLT
51 .L5:
52 movq $0, %fs:0(%rbp)
53 .L3:
54 addq $8, %rsp
55 popq %rbx
56 popq %rbp
57 ret
58 .size __rpc_thread_destroy, .-__rpc_thread_destroy
59 .p2align 4,,15
60 .globl __rpc_thread_variables
61 .hidden __rpc_thread_variables
62 .type __rpc_thread_variables, @function
63 __rpc_thread_variables:
64 pushq %rbx
65 movq thread_rpc_vars@gottpoff(%rip), %rbx
66 movq %fs:(%rbx), %rax
67 testq %rax, %rax
68 je .L21
69 .L10:
70 popq %rbx
71 ret
72 .p2align 4,,10
73 .p2align 3
74 .L21:
75 movl __libc_pthread_functions_init(%rip), %edx
76 testl %edx, %edx
77 je .L12
78 movq 128+__libc_pthread_functions(%rip), %rax
79 leaq rpc_thread_multi(%rip), %rsi
80 leaq once.9545(%rip), %rdi
81 #APP
82 # 59 "rpc_thread.c" 1
83 ror $2*8+1, %rax
84 xor %fs:48, %rax
85 # 0 "" 2
86 #NO_APP
87 call *%rax
88 movq %fs:(%rbx), %rax
89 testq %rax, %rax
90 jne .L10
91 .L13:
92 movl $264, %esi
93 movl $1, %edi
94 call calloc@PLT
95 testq %rax, %rax
96 je .L10
97 movq %rax, %fs:(%rbx)
98 popq %rbx
99 ret
100 .p2align 4,,10
101 .p2align 3
102 .L12:
103 movl once.9545(%rip), %eax
104 testl %eax, %eax
105 jne .L13
106 leaq __libc_tsd_RPC_VARS_mem(%rip), %rax
107 movl $2, once.9545(%rip)
108 movq %rax, %fs:(%rbx)
109 popq %rbx
111 .size __rpc_thread_variables, .-__rpc_thread_variables
112 .p2align 4,,15
113 .globl __GI___rpc_thread_svc_fdset
114 .hidden __GI___rpc_thread_svc_fdset
115 .type __GI___rpc_thread_svc_fdset, @function
116 __GI___rpc_thread_svc_fdset:
117 subq $8, %rsp
118 call __rpc_thread_variables
119 leaq __libc_tsd_RPC_VARS_mem(%rip), %rdx
120 cmpq %rdx, %rax
121 je .L26
122 addq $8, %rsp
124 .p2align 4,,10
125 .p2align 3
126 .L26:
127 movq svc_fdset@GOTPCREL(%rip), %rax
128 addq $8, %rsp
130 .size __GI___rpc_thread_svc_fdset, .-__GI___rpc_thread_svc_fdset
131 .globl __EI___rpc_thread_svc_fdset
132 .set __EI___rpc_thread_svc_fdset,__GI___rpc_thread_svc_fdset
133 .p2align 4,,15
134 .globl __GI___rpc_thread_createerr
135 .hidden __GI___rpc_thread_createerr
136 .type __GI___rpc_thread_createerr, @function
137 __GI___rpc_thread_createerr:
138 subq $8, %rsp
139 call __rpc_thread_variables
140 leaq __libc_tsd_RPC_VARS_mem(%rip), %rdx
141 cmpq %rdx, %rax
142 je .L29
143 subq $-128, %rax
144 addq $8, %rsp
146 .p2align 4,,10
147 .p2align 3
148 .L29:
149 movq rpc_createerr@GOTPCREL(%rip), %rax
150 addq $8, %rsp
152 .size __GI___rpc_thread_createerr, .-__GI___rpc_thread_createerr
153 .globl __EI___rpc_thread_createerr
154 .set __EI___rpc_thread_createerr,__GI___rpc_thread_createerr
155 .p2align 4,,15
156 .globl __GI___rpc_thread_svc_pollfd
157 .hidden __GI___rpc_thread_svc_pollfd
158 .type __GI___rpc_thread_svc_pollfd, @function
159 __GI___rpc_thread_svc_pollfd:
160 subq $8, %rsp
161 call __rpc_thread_variables
162 leaq __libc_tsd_RPC_VARS_mem(%rip), %rdx
163 cmpq %rdx, %rax
164 je .L33
165 addq $160, %rax
166 addq $8, %rsp
168 .p2align 4,,10
169 .p2align 3
170 .L33:
171 movq svc_pollfd@GOTPCREL(%rip), %rax
172 addq $8, %rsp
174 .size __GI___rpc_thread_svc_pollfd, .-__GI___rpc_thread_svc_pollfd
175 .globl __rpc_thread_svc_pollfd
176 .set __rpc_thread_svc_pollfd,__GI___rpc_thread_svc_pollfd
177 .p2align 4,,15
178 .globl __GI___rpc_thread_svc_max_pollfd
179 .hidden __GI___rpc_thread_svc_max_pollfd
180 .type __GI___rpc_thread_svc_max_pollfd, @function
181 __GI___rpc_thread_svc_max_pollfd:
182 subq $8, %rsp
183 call __rpc_thread_variables
184 leaq __libc_tsd_RPC_VARS_mem(%rip), %rdx
185 cmpq %rdx, %rax
186 je .L37
187 addq $168, %rax
188 addq $8, %rsp
190 .p2align 4,,10
191 .p2align 3
192 .L37:
193 movq svc_max_pollfd@GOTPCREL(%rip), %rax
194 addq $8, %rsp
196 .size __GI___rpc_thread_svc_max_pollfd, .-__GI___rpc_thread_svc_max_pollfd
197 .globl __rpc_thread_svc_max_pollfd
198 .set __rpc_thread_svc_max_pollfd,__GI___rpc_thread_svc_max_pollfd
199 .local once.9545
200 .comm once.9545,4,4
201 .section __libc_subfreeres,"aw",@progbits
202 .align 8
203 .type __elf_set___libc_subfreeres_element___rpc_thread_destroy__, @object
204 .size __elf_set___libc_subfreeres_element___rpc_thread_destroy__, 8
205 __elf_set___libc_subfreeres_element___rpc_thread_destroy__:
206 .quad __rpc_thread_destroy
207 .section .tbss,"awT",@nobits
208 .align 8
209 .type thread_rpc_vars, @object
210 .size thread_rpc_vars, 8
211 thread_rpc_vars:
212 .zero 8
213 .local __libc_tsd_RPC_VARS_mem
214 .comm __libc_tsd_RPC_VARS_mem,264,32
215 .hidden __libc_pthread_functions
216 .hidden __libc_pthread_functions_init
217 .hidden __rpc_thread_key_cleanup
218 .hidden __rpc_thread_clnt_cleanup
219 .hidden __rpc_thread_svc_cleanup