clarify the purpose of this project
[nyanglibc.git] / intl / bindtextdom.s
blob664d4b8472906bf253af720e61abf4e066e1ea9a
1 .text
2 .p2align 4,,15
3 .type set_binding_values.part.0, @function
4 set_binding_values.part.0:
5 pushq %r15
6 pushq %r14
7 movq %rdx, %r14
8 pushq %r13
9 pushq %r12
10 movq %rsi, %r13
11 pushq %rbp
12 pushq %rbx
13 movq %rdi, %r12
14 subq $24, %rsp
15 cmpq $0, __pthread_rwlock_wrlock@GOTPCREL(%rip)
16 je .L2
17 leaq _nl_state_lock(%rip), %rdi
18 call __pthread_rwlock_wrlock@PLT
19 .L2:
20 movq _nl_domain_bindings(%rip), %rbx
21 testq %rbx, %rbx
22 jne .L5
23 jmp .L3
24 .p2align 4,,10
25 .p2align 3
26 .L119:
27 js .L3
28 movq (%rbx), %rbx
29 testq %rbx, %rbx
30 je .L3
31 .L5:
32 leaq 24(%rbx), %rsi
33 movq %r12, %rdi
34 call strcmp
35 testl %eax, %eax
36 movl %eax, %ebp
37 jne .L119
38 testq %r13, %r13
39 je .L7
40 movq 0(%r13), %r12
41 movq 8(%rbx), %r15
42 testq %r12, %r12
43 je .L120
44 movq %r15, %rsi
45 movq %r12, %rdi
46 call strcmp
47 testl %eax, %eax
48 je .L121
49 leaq _nl_default_dirname(%rip), %rsi
50 movq %r12, %rdi
51 call strcmp
52 leaq _nl_default_dirname(%rip), %rcx
53 testl %eax, %eax
54 movq %rcx, %rdx
55 jne .L122
56 .L13:
57 cmpq %rcx, %r15
58 je .L15
59 movq %r15, %rdi
60 movq %rdx, 8(%rsp)
61 call free@PLT
62 movq 8(%rsp), %rdx
63 .L15:
64 testq %r14, %r14
65 movq %rdx, 8(%rbx)
66 movq %rdx, 0(%r13)
67 je .L17
68 movq (%r14), %r13
69 movq 16(%rbx), %r12
70 movl $1, %ebp
71 testq %r13, %r13
72 jne .L12
73 movq %r12, (%r14)
74 jmp .L17
75 .p2align 4,,10
76 .p2align 3
77 .L3:
78 testq %r13, %r13
79 je .L123
80 movq 0(%r13), %rbx
81 testq %rbx, %rbx
82 je .L124
83 movq %r12, %rdi
84 call strlen
85 leaq 25(%rax), %rdi
86 leaq 1(%rax), %rbp
87 call malloc@PLT
88 testq %rax, %rax
89 movq %rax, %r15
90 je .L45
91 leaq 24(%rax), %rdi
92 movq %rbp, %rdx
93 movq %r12, %rsi
94 call memcpy@PLT
95 .L48:
96 leaq _nl_default_dirname(%rip), %rsi
97 movq %rbx, %rdi
98 call strcmp
99 testl %eax, %eax
100 leaq _nl_default_dirname(%rip), %rdx
101 jne .L125
102 .L27:
103 testq %r14, %r14
104 movq %rdx, 0(%r13)
105 movq %rdx, 8(%r15)
106 je .L30
107 movq (%r14), %rax
108 testq %rax, %rax
109 jne .L53
110 .L32:
111 movq %rax, (%r14)
112 movq %rax, 16(%r15)
113 .L34:
114 movq _nl_domain_bindings(%rip), %rbp
115 testq %rbp, %rbp
116 je .L35
117 leaq 24(%rbp), %rsi
118 movq %r12, %rdi
119 call strcmp
120 testl %eax, %eax
121 jns .L36
122 jmp .L35
123 .p2align 4,,10
124 .p2align 3
125 .L126:
126 leaq 24(%rbx), %rsi
127 movq %r12, %rdi
128 call strcmp
129 testl %eax, %eax
130 jle .L37
131 movq %rbx, %rbp
132 .L36:
133 movq 0(%rbp), %rbx
134 testq %rbx, %rbx
135 jne .L126
136 .L37:
137 movq %rbx, (%r15)
138 movq %r15, 0(%rbp)
139 jmp .L17
140 .p2align 4,,10
141 .p2align 3
142 .L120:
143 movq %r15, 0(%r13)
144 .L7:
145 testq %r14, %r14
146 je .L10
147 .L117:
148 movq (%r14), %r13
149 movq 16(%rbx), %r12
150 testq %r13, %r13
151 je .L127
152 .L12:
153 testq %r12, %r12
154 je .L20
155 movq %r12, %rsi
156 movq %r13, %rdi
157 call strcmp
158 testl %eax, %eax
159 je .L21
160 .L20:
161 movq %r13, %rdi
162 call __strdup
163 testq %rax, %rax
164 movq %rax, %r13
165 movq %rax, %r12
166 je .L21
167 movq 16(%rbx), %rdi
168 call free@PLT
169 movq %r13, 16(%rbx)
170 movq %r13, (%r14)
171 .L17:
172 addl $1, _nl_msg_cat_cntr(%rip)
173 .L10:
174 cmpq $0, __pthread_rwlock_unlock@GOTPCREL(%rip)
175 je .L1
176 addq $24, %rsp
177 leaq _nl_state_lock(%rip), %rdi
178 popq %rbx
179 popq %rbp
180 popq %r12
181 popq %r13
182 popq %r14
183 popq %r15
184 jmp __pthread_rwlock_unlock@PLT
185 .p2align 4,,10
186 .p2align 3
187 .L123:
188 testq %r14, %r14
189 je .L10
190 cmpq $0, (%r14)
191 je .L40
192 movq %r12, %rdi
193 call strlen
194 leaq 25(%rax), %rdi
195 leaq 1(%rax), %rbx
196 call malloc@PLT
197 testq %rax, %rax
198 movq %rax, %r15
199 je .L40
200 .L54:
201 leaq 24(%r15), %rdi
202 movq %rbx, %rdx
203 movq %r12, %rsi
204 call memcpy@PLT
205 testq %r13, %r13
206 jne .L128
207 leaq _nl_default_dirname(%rip), %rax
208 testq %r14, %r14
209 movq %rax, 8(%r15)
210 je .L30
211 movq (%r14), %rax
212 .L53:
213 movq %rax, %rdi
214 call __strdup
215 testq %rax, %rax
216 jne .L32
217 .L33:
218 movq 8(%r15), %rdi
219 leaq _nl_default_dirname(%rip), %rax
220 cmpq %rax, %rdi
221 je .L38
222 call free@PLT
223 .L38:
224 movq %r15, %rdi
225 call free@PLT
226 testq %r13, %r13
227 jne .L45
228 .p2align 4,,10
229 .p2align 3
230 .L40:
231 movq $0, (%r14)
232 jmp .L10
233 .p2align 4,,10
234 .p2align 3
235 .L1:
236 addq $24, %rsp
237 popq %rbx
238 popq %rbp
239 popq %r12
240 popq %r13
241 popq %r14
242 popq %r15
244 .p2align 4,,10
245 .p2align 3
246 .L121:
247 testq %r14, %r14
248 movq %r15, 0(%r13)
249 je .L10
250 movq (%r14), %r13
251 movq 16(%rbx), %r12
252 testq %r13, %r13
253 jne .L12
254 .L127:
255 movq %r12, (%r14)
256 jmp .L10
257 .p2align 4,,10
258 .p2align 3
259 .L21:
260 testl %ebp, %ebp
261 movq %r12, (%r14)
262 jne .L17
263 jmp .L10
264 .p2align 4,,10
265 .p2align 3
266 .L30:
267 movq $0, 16(%r15)
268 jmp .L34
269 .p2align 4,,10
270 .p2align 3
271 .L35:
272 movq %rbp, (%r15)
273 movq %r15, _nl_domain_bindings(%rip)
274 jmp .L17
275 .L122:
276 movq %r12, %rdi
277 movq %rcx, 8(%rsp)
278 call __strdup
279 testq %rax, %rax
280 movq %rax, %rdx
281 je .L14
282 movq 8(%rbx), %r15
283 movq 8(%rsp), %rcx
284 jmp .L13
285 .L124:
286 testq %r14, %r14
287 je .L129
288 cmpq $0, (%r14)
289 je .L130
290 xorl %eax, %eax
291 orq $-1, %rcx
292 movq %r12, %rdi
293 repnz scasb
294 notq %rcx
295 leaq 24(%rcx), %rdi
296 movq %rcx, %rbx
297 call malloc@PLT
298 testq %rax, %rax
299 movq %rax, %r15
300 jne .L54
301 .L45:
302 movq $0, 0(%r13)
303 .L39:
304 testq %r14, %r14
305 jne .L40
306 jmp .L10
307 .L14:
308 testq %r14, %r14
309 movq $0, 0(%r13)
310 jne .L117
311 jmp .L10
312 .L129:
313 leaq _nl_default_dirname(%rip), %rax
314 movq %rax, 0(%r13)
315 jmp .L10
316 .L125:
317 movq %rbx, %rdi
318 call __strdup
319 testq %rax, %rax
320 movq %rax, %rdx
321 jne .L27
322 .L28:
323 movq %r15, %rdi
324 call free@PLT
325 testq %r13, %r13
326 je .L39
327 jmp .L45
328 .L130:
329 leaq _nl_default_dirname(%rip), %rax
330 movq %rax, 0(%r13)
331 jmp .L40
332 .L128:
333 movq 0(%r13), %rbx
334 testq %rbx, %rbx
335 jne .L48
336 leaq _nl_default_dirname(%rip), %rdx
337 jmp .L27
338 .size set_binding_values.part.0, .-set_binding_values.part.0
339 .p2align 4,,15
340 .globl __bindtextdomain
341 .type __bindtextdomain, @function
342 __bindtextdomain:
343 subq $24, %rsp
344 xorl %eax, %eax
345 testq %rdi, %rdi
346 movq %rsi, 8(%rsp)
347 je .L131
348 cmpb $0, (%rdi)
349 jne .L137
350 .L131:
351 addq $24, %rsp
353 .p2align 4,,10
354 .p2align 3
355 .L137:
356 leaq 8(%rsp), %rsi
357 xorl %edx, %edx
358 call set_binding_values.part.0
359 movq 8(%rsp), %rax
360 addq $24, %rsp
362 .size __bindtextdomain, .-__bindtextdomain
363 .weak bindtextdomain
364 .set bindtextdomain,__bindtextdomain
365 .p2align 4,,15
366 .globl __bind_textdomain_codeset
367 .type __bind_textdomain_codeset, @function
368 __bind_textdomain_codeset:
369 subq $24, %rsp
370 xorl %eax, %eax
371 testq %rdi, %rdi
372 movq %rsi, 8(%rsp)
373 je .L138
374 cmpb $0, (%rdi)
375 jne .L144
376 .L138:
377 addq $24, %rsp
379 .p2align 4,,10
380 .p2align 3
381 .L144:
382 leaq 8(%rsp), %rdx
383 xorl %esi, %esi
384 call set_binding_values.part.0
385 movq 8(%rsp), %rax
386 addq $24, %rsp
388 .size __bind_textdomain_codeset, .-__bind_textdomain_codeset
389 .weak bind_textdomain_codeset
390 .set bind_textdomain_codeset,__bind_textdomain_codeset
391 .weak __pthread_rwlock_unlock
392 .weak __pthread_rwlock_wrlock
393 .hidden __strdup
394 .hidden strlen
395 .hidden _nl_default_dirname
396 .hidden strcmp
397 .hidden _nl_state_lock