clarify the purpose of this project
[nyanglibc.git] / nptl / pthread_create.s
blob0d2401b1497cf1e1a1697405983b8ca98b5cc37b
1 .text
2 #APP
3 .globl __pthread_mutex_lock
4 .globl __pthread_mutex_trylock
5 .globl __pthread_mutex_unlock
6 .globl __pthread_once
7 .globl __pthread_cancel
8 .globl __pthread_key_create
9 .globl __pthread_key_delete
10 .globl __pthread_setspecific
11 .globl __pthread_getspecific
12 #NO_APP
13 .p2align 4,,15
14 .type free_stacks, @function
15 free_stacks:
16 pushq %r13
17 pushq %r12
18 leaq stack_cache(%rip), %r12
19 pushq %rbp
20 pushq %rbx
21 movq %rdi, %r13
22 subq $8, %rsp
23 movq 8+stack_cache(%rip), %rbx
24 cmpq %r12, %rbx
25 movq 8(%rbx), %rbp
26 jne .L4
27 jmp .L1
28 .p2align 4,,10
29 .p2align 3
30 .L6:
31 cmpq %r12, %rbp
32 movq 8(%rbp), %rax
33 movq %rbp, %rbx
34 je .L1
35 movq %rax, %rbp
36 .L4:
37 movl 16(%rbx), %eax
38 testl %eax, %eax
39 jg .L6
40 movq %rbx, in_flight_stack(%rip)
41 movq 8(%rbx), %rdx
42 movq (%rbx), %rax
43 movq %rdx, 8(%rax)
44 movq 8(%rbx), %rdx
45 movq %rax, (%rdx)
46 leaq -704(%rbx), %rdi
47 xorl %esi, %esi
48 movq 984(%rbx), %rax
49 movq $0, in_flight_stack(%rip)
50 subq %rax, stack_cache_actsize(%rip)
51 call _dl_deallocate_tls@PLT
52 movq 984(%rbx), %rsi
53 movq 976(%rbx), %rdi
54 call __munmap@PLT
55 testl %eax, %eax
56 jne .L11
57 cmpq %r13, stack_cache_actsize(%rip)
58 ja .L6
59 .L1:
60 addq $8, %rsp
61 popq %rbx
62 popq %rbp
63 popq %r12
64 popq %r13
65 ret
66 .L11:
67 call abort@PLT
68 .size free_stacks, .-free_stacks
69 .p2align 4,,15
70 .type change_stack_perm, @function
71 change_stack_perm:
72 subq $8, %rsp
73 movq 1696(%rdi), %rax
74 movq 1688(%rdi), %rsi
75 movl $7, %edx
76 subq %rax, %rsi
77 addq 1680(%rdi), %rax
78 movq %rax, %rdi
79 call __mprotect@PLT
80 testl %eax, %eax
81 je .L12
82 movq errno@gottpoff(%rip), %rax
83 movl %fs:(%rax), %eax
84 .L12:
85 addq $8, %rsp
86 ret
87 .size change_stack_perm, .-change_stack_perm
88 .section .rodata.str1.8,"aMS",@progbits,1
89 .align 8
90 .LC0:
91 .string "../sysdeps/unix/sysv/linux/createthread.c"
92 .section .rodata.str1.1,"aMS",@progbits,1
93 .LC1:
94 .string "*stopped_start"
95 .text
96 .p2align 4,,15
97 .type create_thread, @function
98 create_thread:
99 pushq %r14
100 pushq %r13
101 movq %r8, %r14
102 pushq %r12
103 pushq %rbp
104 movq %rsi, %rbp
105 pushq %rbx
106 movq %rdx, %r12
107 movq %rdi, %rbx
108 movq %rcx, %rsi
109 subq $16, %rsp
110 testq %rbp, %rbp
111 je .L23
112 movq 40(%rbp), %rax
113 testq %rax, %rax
114 je .L21
115 cmpq $0, (%rax)
116 movl $1, %r13d
117 je .L21
118 .L22:
119 movl $1, %eax
120 movb $1, (%r12)
121 movb %al, 1555(%rbx)
122 cmpb $0, (%r12)
123 je .L25
124 .p2align 4,,10
125 .p2align 3
126 .L51:
127 leaq 1560(%rbx), %rdi
128 xorl %eax, %eax
129 movl $1, %edx
130 lock cmpxchgl %edx, (%rdi)
131 je .L25
132 movq %rsi, 8(%rsp)
133 call __lll_lock_wait_private@PLT
134 movq 8(%rsp), %rsi
135 jmp .L25
136 .p2align 4,,10
137 .p2align 3
138 .L21:
139 testb $2, 8(%rbp)
140 jne .L50
141 .L23:
142 movzbl (%r12), %eax
143 xorl %r13d, %r13d
144 movb %al, 1555(%rbx)
145 cmpb $0, (%r12)
146 jne .L51
147 .L25:
148 leaq 720(%rbx), %r8
149 subq $8, %rsp
150 leaq start_thread(%rip), %rdi
151 movq %rbx, %rcx
152 movl $4001536, %edx
153 xorl %eax, %eax
154 pushq %r8
155 movq %rbx, %r9
156 call __clone@PLT
157 cmpl $-1, %eax
158 popq %rdx
159 popq %rcx
160 je .L52
161 testq %rbp, %rbp
162 movb $1, (%r14)
163 je .L33
164 testl %r13d, %r13d
165 je .L30
166 cmpb $0, (%r12)
167 je .L53
168 movq 40(%rbp), %rax
169 movl 720(%rbx), %edi
170 movq 8(%rax), %rsi
171 movq (%rax), %rdx
172 movl $203, %eax
173 #APP
174 # 122 "../sysdeps/unix/sysv/linux/createthread.c" 1
175 syscall
177 # 0 "" 2
178 #NO_APP
179 cmpl $-4096, %eax
180 ja .L49
181 .L30:
182 testb $2, 8(%rbp)
183 je .L33
184 cmpb $0, (%r12)
185 je .L54
186 movl 1596(%rbx), %esi
187 movl 720(%rbx), %edi
188 leaq 1592(%rbx), %rdx
189 movl $144, %eax
190 #APP
191 # 144 "../sysdeps/unix/sysv/linux/createthread.c" 1
192 syscall
194 # 0 "" 2
195 #NO_APP
196 cmpl $-4096, %eax
197 ja .L49
198 .L33:
199 xorl %eax, %eax
200 .L18:
201 addq $16, %rsp
202 popq %rbx
203 popq %rbp
204 popq %r12
205 popq %r13
206 popq %r14
208 .p2align 4,,10
209 .p2align 3
210 .L49:
211 .L32:
212 movl %eax, %ebp
213 call __getpid@PLT
214 movl 720(%rbx), %esi
215 movl %eax, %edi
216 movl $32, %edx
217 movl $234, %eax
218 #APP
219 # 133 "../sysdeps/unix/sysv/linux/createthread.c" 1
220 syscall
222 # 0 "" 2
223 #NO_APP
224 movl %ebp, %eax
225 negl %eax
226 jmp .L18
227 .p2align 4,,10
228 .p2align 3
229 .L52:
230 movq errno@gottpoff(%rip), %rax
231 movl %fs:(%rax), %eax
232 addq $16, %rsp
233 popq %rbx
234 popq %rbp
235 popq %r12
236 popq %r13
237 popq %r14
239 .p2align 4,,10
240 .p2align 3
241 .L50:
242 xorl %r13d, %r13d
243 jmp .L22
244 .L54:
245 leaq __PRETTY_FUNCTION__.13456(%rip), %rcx
246 leaq .LC0(%rip), %rsi
247 leaq .LC1(%rip), %rdi
248 movl $142, %edx
249 call __assert_fail@PLT
250 .L53:
251 leaq __PRETTY_FUNCTION__.13456(%rip), %rcx
252 leaq .LC0(%rip), %rsi
253 leaq .LC1(%rip), %rdi
254 movl $120, %edx
255 call __assert_fail@PLT
256 .size create_thread, .-create_thread
257 .section .rodata.str1.8
258 .align 8
259 .LC2:
260 .string "The futex facility returned an unexpected error code.\n"
261 .text
262 .p2align 4,,15
263 .type setxid_mark_thread.isra.0, @function
264 setxid_mark_thread.isra.0:
265 pushq %r12
266 pushq %rbp
267 movq %rdi, %r8
268 pushq %rbx
269 cmpl $-1, 1564(%rdi)
270 je .L71
271 .L56:
272 movl $0, 1564(%r8)
273 .L63:
274 movl 776(%r8), %eax
275 testb $16, %al
276 jne .L72
277 movl %eax, %edx
278 orl $64, %edx
279 lock cmpxchgl %edx, 776(%r8)
280 jne .L63
281 .L55:
282 popq %rbx
283 popq %rbp
284 popq %r12
286 .p2align 4,,10
287 .p2align 3
288 .L71:
289 leaq 1564(%rdi), %rbx
290 movl $-2, %r9d
291 movl $-1, %eax
292 lock cmpxchgl %r9d, (%rbx)
293 jne .L56
294 movl $202, %ebp
295 movl $1, %r12d
296 jmp .L59
297 .p2align 4,,10
298 .p2align 3
299 .L57:
300 cmpl $-2, 1564(%r8)
301 jne .L56
302 .L59:
303 xorl %r10d, %r10d
304 movl %r9d, %edx
305 movl $128, %esi
306 movq %rbx, %rdi
307 movl %ebp, %eax
308 #APP
309 # 146 "../sysdeps/nptl/futex-internal.h" 1
310 syscall
312 # 0 "" 2
313 #NO_APP
314 cmpq $-4096, %rax
315 jbe .L57
316 leal 11(%rax), %ecx
317 cmpl $11, %ecx
318 ja .L58
319 movq %r12, %rax
320 salq %cl, %rax
321 testl $2177, %eax
322 jne .L57
323 jmp .L58
324 .p2align 4,,10
325 .p2align 3
326 .L72:
327 testb $64, %al
328 jne .L55
329 movl $1, 1564(%r8)
330 leaq 1564(%r8), %rdi
331 xorl %r10d, %r10d
332 movl $1, %edx
333 movl $129, %esi
334 movl $202, %eax
335 #APP
336 # 209 "../sysdeps/nptl/futex-internal.h" 1
337 syscall
339 # 0 "" 2
340 #NO_APP
341 cmpq $-4096, %rax
342 jbe .L55
343 cmpl $-22, %eax
344 je .L55
345 cmpl $-14, %eax
346 je .L55
347 .L58:
348 leaq .LC2(%rip), %rdi
349 call __libc_fatal@PLT
350 .size setxid_mark_thread.isra.0, .-setxid_mark_thread.isra.0
351 .p2align 4,,15
352 .type setxid_unmark_thread.isra.2, @function
353 setxid_unmark_thread.isra.2:
354 .L75:
355 movl 776(%rdi), %eax
356 testb $64, %al
357 je .L73
358 movl %eax, %edx
359 andl $-65, %edx
360 lock cmpxchgl %edx, 776(%rdi)
361 jne .L75
362 movl $1, 1564(%rdi)
363 xorl %r10d, %r10d
364 addq $1564, %rdi
365 movl $1, %edx
366 movl $129, %esi
367 movl $202, %eax
368 #APP
369 # 209 "../sysdeps/nptl/futex-internal.h" 1
370 syscall
372 # 0 "" 2
373 #NO_APP
374 cmpq $-4096, %rax
375 ja .L86
376 .L73:
377 rep ret
378 .p2align 4,,10
379 .p2align 3
380 .L86:
381 cmpl $-22, %eax
382 je .L73
383 cmpl $-14, %eax
384 je .L73
385 leaq .LC2(%rip), %rdi
386 subq $8, %rsp
387 call __libc_fatal@PLT
388 .size setxid_unmark_thread.isra.2, .-setxid_unmark_thread.isra.2
389 .p2align 4,,15
390 .type setxid_signal_thread.part.4, @function
391 setxid_signal_thread.part.4:
392 pushq %rbp
393 pushq %rbx
394 movq %rsi, %rbp
395 movq %rdi, %rbx
396 subq $8, %rsp
397 call __getpid@PLT
398 movl 720(%rbp), %esi
399 movl %eax, %edi
400 movl $33, %edx
401 movl $234, %eax
402 #APP
403 # 1031 "allocatestack.c" 1
404 syscall
406 # 0 "" 2
407 #NO_APP
408 xorl %edx, %edx
409 cmpl $-4096, %eax
410 ja .L87
411 #APP
412 # 1036 "allocatestack.c" 1
413 lock;incl 32(%rbx)
414 # 0 "" 2
415 #NO_APP
416 movl $1, %edx
417 .L87:
418 addq $8, %rsp
419 movl %edx, %eax
420 popq %rbx
421 popq %rbp
423 .size setxid_signal_thread.part.4, .-setxid_signal_thread.part.4
424 .p2align 4,,15
425 .type __nptl_deallocate_tsd.part.5, @function
426 __nptl_deallocate_tsd.part.5:
427 pushq %r15
428 pushq %r14
429 pushq %r13
430 pushq %r12
431 leaq __pthread_keys(%rip), %r13
432 pushq %rbp
433 pushq %rbx
434 subq $24, %rsp
435 movq $4, 8(%rsp)
436 .L100:
437 #APP
438 # 269 "pthread_create.c" 1
439 movb $0,%fs:1552
440 # 0 "" 2
441 #NO_APP
442 movl $32, %r12d
443 xorl %ebp, %ebp
444 .p2align 4,,10
445 .p2align 3
446 .L98:
447 #APP
448 # 275 "pthread_create.c" 1
449 movq %fs:1296(,%rbp,8),%rbx
450 # 0 "" 2
451 #NO_APP
452 testq %rbx, %rbx
453 je .L93
454 movq %rbp, %r15
455 movq %r12, %rax
456 addq $8, %rbx
457 salq $9, %r15
458 salq $4, %rax
459 addq %r13, %r15
460 leaq (%rax,%r13), %r14
461 jmp .L97
462 .p2align 4,,10
463 .p2align 3
464 .L95:
465 addq $16, %r15
466 addq $16, %rbx
467 cmpq %r14, %r15
468 je .L93
469 .L97:
470 movq (%rbx), %rdi
471 testq %rdi, %rdi
472 je .L95
473 movq (%r15), %rax
474 cmpq %rax, -8(%rbx)
475 movq $0, (%rbx)
476 jne .L95
477 movq 8(%r15), %rdx
478 testq %rdx, %rdx
479 je .L95
480 addq $16, %r15
481 addq $16, %rbx
482 call *%rdx
483 cmpq %r14, %r15
484 jne .L97
485 .p2align 4,,10
486 .p2align 3
487 .L93:
488 addq $1, %rbp
489 addq $32, %r12
490 cmpq $32, %rbp
491 jne .L98
492 xorl %eax, %eax
493 #APP
494 # 311 "pthread_create.c" 1
495 movb %fs:1552,%al
496 # 0 "" 2
497 #NO_APP
498 testb %al, %al
499 je .L99
500 subq $1, 8(%rsp)
501 movq 8(%rsp), %rsi
502 jne .L100
503 movq %fs:16, %rax
504 leaq 792(%rax), %rdi
505 movq $0, 784(%rax)
506 movq $0, 1288(%rax)
507 andq $-8, %rdi
508 subl %edi, %eax
509 leal 1296(%rax), %ecx
510 movq %rsi, %rax
511 shrl $3, %ecx
512 rep stosq
513 .L99:
514 movl $1, %ebx
515 .p2align 4,,10
516 .p2align 3
517 .L102:
518 #APP
519 # 328 "pthread_create.c" 1
520 movq %fs:1296(,%rbx,8),%rdi
521 # 0 "" 2
522 #NO_APP
523 testq %rdi, %rdi
524 je .L101
525 call free@PLT
526 #APP
527 # 334 "pthread_create.c" 1
528 movq $0,%fs:1296(,%rbx,8)
529 # 0 "" 2
530 #NO_APP
531 .L101:
532 addq $1, %rbx
533 cmpq $32, %rbx
534 jne .L102
535 #APP
536 # 338 "pthread_create.c" 1
537 movb $0,%fs:1552
538 # 0 "" 2
539 #NO_APP
540 addq $24, %rsp
541 popq %rbx
542 popq %rbp
543 popq %r12
544 popq %r13
545 popq %r14
546 popq %r15
548 .size __nptl_deallocate_tsd.part.5, .-__nptl_deallocate_tsd.part.5
549 .p2align 4,,15
550 .globl __nptl_stacks_freeres
551 .type __nptl_stacks_freeres, @function
552 __nptl_stacks_freeres:
553 xorl %edi, %edi
554 jmp free_stacks
555 .size __nptl_stacks_freeres, .-__nptl_stacks_freeres
556 .p2align 4,,15
557 .globl __deallocate_stack
558 .type __deallocate_stack, @function
559 __deallocate_stack:
560 pushq %rbx
561 xorl %eax, %eax
562 movq %rdi, %rbx
563 movl $1, %edx
564 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
565 jne .L127
566 .L122:
567 leaq 704(%rbx), %rax
568 movq %rax, in_flight_stack(%rip)
569 movq 712(%rbx), %rcx
570 movq 704(%rbx), %rdx
571 movq %rcx, 8(%rdx)
572 movq 712(%rbx), %rcx
573 movq %rdx, (%rcx)
574 cmpb $0, 1554(%rbx)
575 movq $0, in_flight_stack(%rip)
576 jne .L123
577 movq %rax, %rdx
578 orq $1, %rdx
579 movq %rdx, in_flight_stack(%rip)
580 movq stack_cache(%rip), %rdx
581 leaq stack_cache(%rip), %rsi
582 movq %rsi, 712(%rbx)
583 movq %rdx, 704(%rbx)
584 movq %rax, 8(%rdx)
585 movq %rax, stack_cache(%rip)
586 movq stack_cache_actsize(%rip), %rax
587 addq 1688(%rbx), %rax
588 movq $0, in_flight_stack(%rip)
589 cmpq $41943040, %rax
590 movq %rax, stack_cache_actsize(%rip)
591 ja .L128
592 .L124:
593 xorl %eax, %eax
594 #APP
595 # 806 "allocatestack.c" 1
596 xchgl %eax, _dl_stack_cache_lock(%rip)
597 # 0 "" 2
598 #NO_APP
599 cmpl $1, %eax
600 jg .L129
601 popq %rbx
603 .p2align 4,,10
604 .p2align 3
605 .L129:
606 xorl %r10d, %r10d
607 movl $1, %edx
608 movl $129, %esi
609 leaq _dl_stack_cache_lock(%rip), %rdi
610 movl $202, %eax
611 #APP
612 # 806 "allocatestack.c" 1
613 syscall
615 # 0 "" 2
616 #NO_APP
617 popq %rbx
619 .p2align 4,,10
620 .p2align 3
621 .L127:
622 leaq _dl_stack_cache_lock(%rip), %rdi
623 call __lll_lock_wait_private@PLT
624 jmp .L122
625 .p2align 4,,10
626 .p2align 3
627 .L123:
628 xorl %esi, %esi
629 movq %rbx, %rdi
630 call _dl_deallocate_tls@PLT
631 jmp .L124
632 .p2align 4,,10
633 .p2align 3
634 .L128:
635 movl $41943040, %edi
636 call free_stacks
637 jmp .L124
638 .size __deallocate_stack, .-__deallocate_stack
639 .p2align 4,,15
640 .globl __make_stacks_executable
641 .type __make_stacks_executable, @function
642 __make_stacks_executable:
643 pushq %r12
644 pushq %rbp
645 pushq %rbx
646 call _dl_make_stack_executable@PLT
647 testl %eax, %eax
648 movl %eax, %ebp
649 je .L144
650 .L130:
651 movl %ebp, %eax
652 popq %rbx
653 popq %rbp
654 popq %r12
656 .p2align 4,,10
657 .p2align 3
658 .L144:
659 movl $1, %edx
660 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
661 jne .L145
662 .L132:
663 movq _dl_stack_used(%rip), %rbx
664 leaq _dl_stack_used(%rip), %r12
665 cmpq %r12, %rbx
666 jne .L135
667 jmp .L133
668 .p2align 4,,10
669 .p2align 3
670 .L146:
671 movq (%rbx), %rbx
672 cmpq %r12, %rbx
673 je .L133
674 .L135:
675 leaq -704(%rbx), %rdi
676 call change_stack_perm
677 testl %eax, %eax
678 je .L146
679 .L139:
680 movl %eax, %ebp
681 .L134:
682 xorl %eax, %eax
683 #APP
684 # 851 "allocatestack.c" 1
685 xchgl %eax, _dl_stack_cache_lock(%rip)
686 # 0 "" 2
687 #NO_APP
688 cmpl $1, %eax
689 jle .L130
690 xorl %r10d, %r10d
691 movl $1, %edx
692 movl $129, %esi
693 leaq _dl_stack_cache_lock(%rip), %rdi
694 movl $202, %eax
695 #APP
696 # 851 "allocatestack.c" 1
697 syscall
699 # 0 "" 2
700 #NO_APP
701 jmp .L130
702 .p2align 4,,10
703 .p2align 3
704 .L133:
705 movq stack_cache(%rip), %rbx
706 leaq stack_cache(%rip), %r12
707 cmpq %r12, %rbx
708 jne .L136
709 jmp .L134
710 .p2align 4,,10
711 .p2align 3
712 .L147:
713 movq (%rbx), %rbx
714 cmpq %r12, %rbx
715 je .L134
716 .L136:
717 leaq -704(%rbx), %rdi
718 call change_stack_perm
719 testl %eax, %eax
720 je .L147
721 jmp .L139
722 .p2align 4,,10
723 .p2align 3
724 .L145:
725 leaq _dl_stack_cache_lock(%rip), %rdi
726 call __lll_lock_wait_private@PLT
727 jmp .L132
728 .size __make_stacks_executable, .-__make_stacks_executable
729 .section .rodata.str1.1
730 .LC3:
731 .string "allocatestack.c"
732 .LC4:
733 .string "l->next->prev == elem"
734 .text
735 .p2align 4,,15
736 .globl __reclaim_stacks
737 .type __reclaim_stacks, @function
738 __reclaim_stacks:
739 movq in_flight_stack(%rip), %rax
740 movq %fs:16, %r10
741 testq %rax, %rax
742 je .L172
743 movq %rax, %rdx
744 andq $-2, %rdx
745 testb $1, %al
746 je .L151
747 movq _dl_stack_used(%rip), %rsi
748 leaq _dl_stack_used(%rip), %r9
749 movq %r9, %rax
750 movq 8(%rsi), %rcx
751 cmpq %r9, %rcx
752 je .L173
753 .L152:
754 cmpq %rcx, %rdx
755 jne .L174
756 movq %rsi, (%rdx)
757 movq %rax, 8(%rdx)
758 movq %rdx, (%rax)
759 movq _dl_stack_used(%rip), %rsi
760 jmp .L150
761 .p2align 4,,10
762 .p2align 3
763 .L151:
764 movq (%rdx), %rax
765 movq 8(%rdx), %rcx
766 movq %rcx, 8(%rax)
767 movq 8(%rdx), %rdx
768 movq %rax, (%rdx)
769 .L172:
770 movq _dl_stack_used(%rip), %rsi
771 leaq _dl_stack_used(%rip), %r9
772 .L150:
773 xorl %eax, %eax
774 cmpq %r9, %rsi
775 je .L155
776 .p2align 4,,10
777 .p2align 3
778 .L154:
779 leaq -704(%rsi), %rdx
780 cmpq %rdx, %r10
781 je .L156
782 movq 984(%rsi), %rdx
783 addq %rdx, stack_cache_actsize(%rip)
784 cmpb $0, 848(%rsi)
785 movl $0, 16(%rsi)
786 jne .L175
787 .L156:
788 movq (%rsi), %rsi
789 cmpq %r9, %rsi
790 jne .L154
791 movq (%r9), %rax
792 cmpq %r9, %rax
793 je .L155
794 leaq stack_cache(%rip), %rsi
795 movq stack_cache(%rip), %rdx
796 movq %rsi, 8(%rax)
797 movq 8(%r9), %rax
798 movq %rdx, (%rax)
799 movq stack_cache(%rip), %rdx
800 movq %rax, 8(%rdx)
801 movq (%r9), %rax
802 movq %rax, stack_cache(%rip)
803 .L155:
804 leaq 704(%r10), %rdx
805 movq %rdx, in_flight_stack(%rip)
806 movq 712(%r10), %rcx
807 movq 704(%r10), %rax
808 movq %rcx, 8(%rax)
809 movq 712(%r10), %rcx
810 movq %rax, (%rcx)
811 leaq _dl_stack_user(%rip), %rcx
812 movq $0, in_flight_stack(%rip)
813 movq %r9, 8+_dl_stack_used(%rip)
814 movq %r9, _dl_stack_used(%rip)
815 xorl %eax, %eax
816 movq %rcx, 8+_dl_stack_user(%rip)
817 movq %rcx, _dl_stack_user(%rip)
818 #APP
819 # 950 "allocatestack.c" 1
820 movb %fs:1554,%al
821 # 0 "" 2
822 #NO_APP
823 testb %al, %al
824 jne .L176
825 movq %r9, 704(%r10)
826 movq %r9, 712(%r10)
827 movq %rdx, 8+_dl_stack_used(%rip)
828 movq %rdx, _dl_stack_used(%rip)
829 .L161:
830 movl $1, __nptl_nthreads(%rip)
831 movq $0, in_flight_stack(%rip)
832 movl $0, _dl_stack_cache_lock(%rip)
833 movl $0, __default_pthread_attr_lock(%rip)
835 .p2align 4,,10
836 .p2align 3
837 .L175:
838 leaq 88(%rsi), %rdi
839 movl %esi, %ecx
840 leaq 600(%rsi), %rdx
841 leaq 848(%rsi), %r8
842 movq $0, 80(%rsi)
843 andq $-8, %rdi
844 movq $0, -16(%rdx)
845 subl %edi, %ecx
846 addl $592, %ecx
847 shrl $3, %ecx
848 rep stosq
849 movb $0, 848(%rsi)
850 .p2align 4,,10
851 .p2align 3
852 .L158:
853 movq (%rdx), %rcx
854 testq %rcx, %rcx
855 je .L157
856 leaq 8(%rcx), %rdi
857 movq $0, (%rcx)
858 movq $0, 504(%rcx)
859 andq $-8, %rdi
860 subq %rdi, %rcx
861 addl $512, %ecx
862 shrl $3, %ecx
863 rep stosq
864 movb $1, 848(%rsi)
865 .L157:
866 addq $8, %rdx
867 cmpq %r8, %rdx
868 jne .L158
869 jmp .L156
870 .L173:
871 movq stack_cache(%rip), %rdi
872 leaq stack_cache(%rip), %rax
873 movq 8(%rdi), %rcx
874 cmpq %rax, %rcx
875 je .L150
876 movq %rdi, %rsi
877 jmp .L152
878 .L176:
879 movq %rcx, 704(%r10)
880 movq %rcx, 712(%r10)
881 movq %rdx, 8+_dl_stack_user(%rip)
882 movq %rdx, _dl_stack_user(%rip)
883 jmp .L161
884 .L174:
885 leaq __PRETTY_FUNCTION__.13263(%rip), %rcx
886 leaq .LC3(%rip), %rsi
887 leaq .LC4(%rip), %rdi
888 subq $8, %rsp
889 movl $889, %edx
890 call __assert_fail@PLT
891 .size __reclaim_stacks, .-__reclaim_stacks
892 .p2align 4,,15
893 .globl __nptl_setxid_error
894 .type __nptl_setxid_error, @function
895 __nptl_setxid_error:
896 .L180:
897 movl 36(%rdi), %eax
898 cmpl %esi, %eax
899 je .L177
900 cmpl $-1, %eax
901 jne .L186
902 lock cmpxchgl %esi, 36(%rdi)
903 jne .L180
904 .L177:
905 rep ret
906 .L186:
907 subq $24, %rsp
908 movl %esi, 12(%rsp)
909 call abort@PLT
910 .size __nptl_setxid_error, .-__nptl_setxid_error
911 .p2align 4,,15
912 .globl __nptl_setxid
913 .type __nptl_setxid, @function
914 __nptl_setxid:
915 pushq %r15
916 pushq %r14
917 xorl %eax, %eax
918 pushq %r13
919 pushq %r12
920 movl $1, %edx
921 pushq %rbp
922 pushq %rbx
923 movq %rdi, %rbx
924 subq $24, %rsp
925 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
926 jne .L244
927 .L188:
928 movq _dl_stack_used(%rip), %rbp
929 leaq _dl_stack_used(%rip), %r14
930 movl $0, 32(%rbx)
931 movq %rbx, __xidcmd(%rip)
932 movl $-1, 36(%rbx)
933 movq %fs:16, %r15
934 cmpq %r14, %rbp
935 je .L189
936 .p2align 4,,10
937 .p2align 3
938 .L191:
939 leaq -704(%rbp), %rdi
940 cmpq %rdi, %r15
941 je .L190
942 call setxid_mark_thread.isra.0
943 .L190:
944 movq 0(%rbp), %rbp
945 cmpq %r14, %rbp
946 jne .L191
947 .L189:
948 movq _dl_stack_user(%rip), %rbp
949 leaq _dl_stack_user(%rip), %r13
950 cmpq %r13, %rbp
951 je .L192
952 .p2align 4,,10
953 .p2align 3
954 .L194:
955 leaq -704(%rbp), %rdi
956 cmpq %rdi, %r15
957 je .L193
958 call setxid_mark_thread.isra.0
959 .L193:
960 movq 0(%rbp), %rbp
961 cmpq %r13, %rbp
962 jne .L194
963 .L192:
964 leaq 32(%rbx), %r12
965 movl $202, %ebp
966 .p2align 4,,10
967 .p2align 3
968 .L211:
969 movq (%r14), %rdx
970 cmpq %r14, %rdx
971 je .L195
972 xorl %r9d, %r9d
973 jmp .L198
974 .p2align 4,,10
975 .p2align 3
976 .L196:
977 movq (%rdx), %rdx
978 cmpq %r14, %rdx
979 je .L245
980 .L198:
981 leaq -704(%rdx), %rsi
982 cmpq %rsi, %r15
983 je .L196
984 testb $64, 72(%rdx)
985 je .L196
986 movq %rbx, %rdi
987 movq %rdx, 8(%rsp)
988 movl %r9d, (%rsp)
989 call setxid_signal_thread.part.4
990 movq 8(%rsp), %rdx
991 movl (%rsp), %r9d
992 movq (%rdx), %rdx
993 addl %eax, %r9d
994 cmpq %r14, %rdx
995 jne .L198
996 .L245:
997 movq 0(%r13), %rdx
998 cmpq %r13, %rdx
999 jne .L206
1000 jmp .L203
1001 .p2align 4,,10
1002 .p2align 3
1003 .L204:
1004 movq (%rdx), %rdx
1005 cmpq %r13, %rdx
1006 je .L203
1007 .L206:
1008 leaq -704(%rdx), %rsi
1009 cmpq %rsi, %r15
1010 je .L204
1011 testb $64, 72(%rdx)
1012 je .L204
1013 movq %rbx, %rdi
1014 movl %r9d, 8(%rsp)
1015 movq %rdx, (%rsp)
1016 call setxid_signal_thread.part.4
1017 movq (%rsp), %rdx
1018 movl 8(%rsp), %r9d
1019 movq (%rdx), %rdx
1020 addl %eax, %r9d
1021 cmpq %r13, %rdx
1022 jne .L206
1023 .p2align 4,,10
1024 .p2align 3
1025 .L203:
1026 movl 32(%rbx), %edx
1027 testl %edx, %edx
1028 je .L207
1029 .L210:
1030 xorl %r10d, %r10d
1031 movl $128, %esi
1032 movq %r12, %rdi
1033 movl %ebp, %eax
1034 #APP
1035 # 146 "../sysdeps/nptl/futex-internal.h" 1
1036 syscall
1038 # 0 "" 2
1039 #NO_APP
1040 cmpq $-4096, %rax
1041 jbe .L203
1042 leal 11(%rax), %ecx
1043 cmpl $11, %ecx
1044 ja .L209
1045 movl $1, %eax
1046 salq %cl, %rax
1047 testl $2177, %eax
1048 jne .L203
1049 .L209:
1050 leaq .LC2(%rip), %rdi
1051 call __libc_fatal@PLT
1052 .p2align 4,,10
1053 .p2align 3
1054 .L207:
1055 testl %r9d, %r9d
1056 jne .L211
1057 movq _dl_stack_used(%rip), %rbp
1058 cmpq %r14, %rbp
1059 je .L242
1060 .p2align 4,,10
1061 .p2align 3
1062 .L212:
1063 leaq -704(%rbp), %rdi
1064 cmpq %rdi, %r15
1065 je .L214
1066 call setxid_unmark_thread.isra.2
1067 .L214:
1068 movq 0(%rbp), %rbp
1069 cmpq %r14, %rbp
1070 jne .L212
1071 .L242:
1072 movq _dl_stack_user(%rip), %rbp
1073 jmp .L243
1074 .p2align 4,,10
1075 .p2align 3
1076 .L216:
1077 leaq -704(%rbp), %rdi
1078 cmpq %rdi, %r15
1079 je .L215
1080 call setxid_unmark_thread.isra.2
1081 .L215:
1082 movq 0(%rbp), %rbp
1083 .L243:
1084 cmpq %r13, %rbp
1085 jne .L216
1086 .L202:
1087 movq 16(%rbx), %rsi
1088 movq 8(%rbx), %rdi
1089 movq 24(%rbx), %rdx
1090 movl (%rbx), %eax
1091 #APP
1092 # 1160 "allocatestack.c" 1
1093 syscall
1095 # 0 "" 2
1096 #NO_APP
1097 xorl %esi, %esi
1098 cmpl $-4096, %eax
1099 movl %eax, %ebp
1100 ja .L246
1101 .L217:
1102 movq %rbx, %rdi
1103 call __nptl_setxid_error
1104 xorl %eax, %eax
1105 #APP
1106 # 1171 "allocatestack.c" 1
1107 xchgl %eax, _dl_stack_cache_lock(%rip)
1108 # 0 "" 2
1109 #NO_APP
1110 cmpl $1, %eax
1111 jg .L247
1112 .L187:
1113 addq $24, %rsp
1114 movl %ebp, %eax
1115 popq %rbx
1116 popq %rbp
1117 popq %r12
1118 popq %r13
1119 popq %r14
1120 popq %r15
1122 .L195:
1123 movq 0(%r13), %rdx
1124 xorl %r9d, %r9d
1125 cmpq %r13, %rdx
1126 jne .L206
1127 movl 32(%rbx), %edx
1128 testl %edx, %edx
1129 jne .L210
1130 jmp .L202
1131 .L244:
1132 leaq _dl_stack_cache_lock(%rip), %rdi
1133 call __lll_lock_wait_private@PLT
1134 jmp .L188
1135 .L246:
1136 movl %eax, %esi
1137 movq errno@gottpoff(%rip), %rax
1138 movl $-1, %ebp
1139 negl %esi
1140 movl %esi, %fs:(%rax)
1141 jmp .L217
1142 .L247:
1143 xorl %r10d, %r10d
1144 movl $1, %edx
1145 movl $129, %esi
1146 leaq _dl_stack_cache_lock(%rip), %rdi
1147 movl $202, %eax
1148 #APP
1149 # 1171 "allocatestack.c" 1
1150 syscall
1152 # 0 "" 2
1153 #NO_APP
1154 jmp .L187
1155 .size __nptl_setxid, .-__nptl_setxid
1156 .p2align 4,,15
1157 .globl __pthread_init_static_tls
1158 .type __pthread_init_static_tls, @function
1159 __pthread_init_static_tls:
1160 pushq %r14
1161 pushq %r13
1162 xorl %eax, %eax
1163 pushq %r12
1164 pushq %rbp
1165 movl $1, %edx
1166 pushq %rbx
1167 movq %rdi, %rbx
1168 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
1169 jne .L258
1170 .L249:
1171 movq _dl_stack_used(%rip), %rbp
1172 leaq _dl_stack_used(%rip), %r13
1173 cmpq %r13, %rbp
1174 je .L250
1175 movq $-704, %r14
1176 .p2align 4,,10
1177 .p2align 3
1178 .L251:
1179 movq %r14, %rdi
1180 subq 1112(%rbx), %rdi
1181 movq 1080(%rbx), %rdx
1182 movq 1088(%rbx), %r12
1183 movq 1072(%rbx), %rsi
1184 addq %rbp, %rdi
1185 subq %rdx, %r12
1186 call __mempcpy@PLT
1187 xorl %esi, %esi
1188 movq %r12, %rdx
1189 movq %rax, %rdi
1190 call memset@PLT
1191 movq 0(%rbp), %rbp
1192 cmpq %r13, %rbp
1193 jne .L251
1194 .L250:
1195 movq _dl_stack_user(%rip), %rbp
1196 leaq _dl_stack_user(%rip), %r13
1197 cmpq %r13, %rbp
1198 je .L252
1199 movq $-704, %r14
1200 .p2align 4,,10
1201 .p2align 3
1202 .L253:
1203 movq %r14, %rdi
1204 subq 1112(%rbx), %rdi
1205 movq 1080(%rbx), %rdx
1206 movq 1088(%rbx), %r12
1207 movq 1072(%rbx), %rsi
1208 addq %rbp, %rdi
1209 subq %rdx, %r12
1210 call __mempcpy@PLT
1211 xorl %esi, %esi
1212 movq %r12, %rdx
1213 movq %rax, %rdi
1214 call memset@PLT
1215 movq 0(%rbp), %rbp
1216 cmpq %r13, %rbp
1217 jne .L253
1218 .L252:
1219 xorl %eax, %eax
1220 #APP
1221 # 1206 "allocatestack.c" 1
1222 xchgl %eax, _dl_stack_cache_lock(%rip)
1223 # 0 "" 2
1224 #NO_APP
1225 cmpl $1, %eax
1226 jg .L259
1227 popq %rbx
1228 popq %rbp
1229 popq %r12
1230 popq %r13
1231 popq %r14
1233 .p2align 4,,10
1234 .p2align 3
1235 .L258:
1236 leaq _dl_stack_cache_lock(%rip), %rdi
1237 call __lll_lock_wait_private@PLT
1238 jmp .L249
1239 .p2align 4,,10
1240 .p2align 3
1241 .L259:
1242 xorl %r10d, %r10d
1243 movl $1, %edx
1244 movl $129, %esi
1245 leaq _dl_stack_cache_lock(%rip), %rdi
1246 movl $202, %eax
1247 #APP
1248 # 1206 "allocatestack.c" 1
1249 syscall
1251 # 0 "" 2
1252 #NO_APP
1253 popq %rbx
1254 popq %rbp
1255 popq %r12
1256 popq %r13
1257 popq %r14
1259 .size __pthread_init_static_tls, .-__pthread_init_static_tls
1260 .p2align 4,,15
1261 .globl __find_in_stack_list
1262 .type __find_in_stack_list, @function
1263 __find_in_stack_list:
1264 pushq %rbx
1265 xorl %eax, %eax
1266 movq %rdi, %rbx
1267 movl $1, %edx
1268 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
1269 jne .L273
1270 .L261:
1271 movq _dl_stack_used(%rip), %rax
1272 leaq _dl_stack_used(%rip), %rcx
1273 cmpq %rcx, %rax
1274 jne .L265
1275 jmp .L262
1276 .p2align 4,,10
1277 .p2align 3
1278 .L274:
1279 movq (%rax), %rax
1280 cmpq %rcx, %rax
1281 je .L262
1282 .L265:
1283 leaq -704(%rax), %rdx
1284 cmpq %rdx, %rbx
1285 jne .L274
1286 testq %rbx, %rbx
1287 je .L262
1288 .L266:
1289 xorl %eax, %eax
1290 #APP
1291 # 243 "pthread_create.c" 1
1292 xchgl %eax, _dl_stack_cache_lock(%rip)
1293 # 0 "" 2
1294 #NO_APP
1295 cmpl $1, %eax
1296 jg .L275
1297 movq %rbx, %rax
1298 popq %rbx
1300 .p2align 4,,10
1301 .p2align 3
1302 .L262:
1303 movq _dl_stack_user(%rip), %rax
1304 leaq _dl_stack_user(%rip), %rcx
1305 cmpq %rcx, %rax
1306 je .L270
1307 .p2align 4,,10
1308 .p2align 3
1309 .L268:
1310 leaq -704(%rax), %rdx
1311 cmpq %rdx, %rbx
1312 je .L266
1313 movq (%rax), %rax
1314 cmpq %rcx, %rax
1315 jne .L268
1316 .L270:
1317 xorl %ebx, %ebx
1318 jmp .L266
1319 .p2align 4,,10
1320 .p2align 3
1321 .L275:
1322 xorl %r10d, %r10d
1323 movl $1, %edx
1324 movl $129, %esi
1325 leaq _dl_stack_cache_lock(%rip), %rdi
1326 movl $202, %eax
1327 #APP
1328 # 243 "pthread_create.c" 1
1329 syscall
1331 # 0 "" 2
1332 #NO_APP
1333 movq %rbx, %rax
1334 popq %rbx
1336 .p2align 4,,10
1337 .p2align 3
1338 .L273:
1339 leaq _dl_stack_cache_lock(%rip), %rdi
1340 call __lll_lock_wait_private@PLT
1341 jmp .L261
1342 .size __find_in_stack_list, .-__find_in_stack_list
1343 .p2align 4,,15
1344 .globl __nptl_deallocate_tsd
1345 .type __nptl_deallocate_tsd, @function
1346 __nptl_deallocate_tsd:
1347 xorl %eax, %eax
1348 #APP
1349 # 258 "pthread_create.c" 1
1350 movb %fs:1552,%al
1351 # 0 "" 2
1352 #NO_APP
1353 testb %al, %al
1354 je .L276
1355 jmp __nptl_deallocate_tsd.part.5
1356 .p2align 4,,10
1357 .p2align 3
1358 .L276:
1359 rep ret
1360 .size __nptl_deallocate_tsd, .-__nptl_deallocate_tsd
1361 .p2align 4,,15
1362 .globl __free_tcb
1363 .type __free_tcb, @function
1364 __free_tcb:
1365 #APP
1366 # 349 "pthread_create.c" 1
1367 lock;btsl $5, 776(%rdi); setc %al
1368 # 0 "" 2
1369 #NO_APP
1370 testb %al, %al
1371 jne .L278
1372 pushq %rbx
1373 movq %rdi, %rbx
1374 movq 1712(%rdi), %rdi
1375 testq %rdi, %rdi
1376 jne .L287
1377 .L280:
1378 movq %rbx, %rdi
1379 popq %rbx
1380 jmp __deallocate_stack
1381 .p2align 4,,10
1382 .p2align 3
1383 .L278:
1384 rep ret
1385 .p2align 4,,10
1386 .p2align 3
1387 .L287:
1388 movq $0, 1712(%rbx)
1389 call free@PLT
1390 jmp .L280
1391 .size __free_tcb, .-__free_tcb
1392 .section .rodata.str1.1
1393 .LC5:
1394 .string "freesize < size"
1395 .text
1396 .p2align 4,,15
1397 .type start_thread, @function
1398 start_thread:
1399 pushq %r12
1400 pushq %rbp
1401 leaq 1720(%rdi), %rdx
1402 pushq %rbx
1403 movq %rdi, %rbx
1404 addq $-128, %rsp
1405 movq __resp@gottpoff(%rip), %rax
1406 movq %rdx, %fs:(%rax)
1407 call __ctype_init@PLT
1408 movq %rbx, 8(%rsp)
1409 leaq 736(%rbx), %rdi
1410 movl $24, %esi
1411 movl $273, %eax
1412 #APP
1413 # 395 "pthread_create.c" 1
1414 syscall
1416 # 0 "" 2
1417 #NO_APP
1418 leaq 16(%rsp), %rdi
1419 call _setjmp@PLT
1420 movq 8(%rsp), %r8
1421 movl %eax, %ebx
1422 movq $0, 88(%rsp)
1423 movq $0, 96(%rsp)
1424 movl $8, %r10d
1425 xorl %edx, %edx
1426 movl $2, %edi
1427 movl $14, %eax
1428 leaq 2288(%r8), %rsi
1429 #APP
1430 # 105 "../sysdeps/unix/sysv/linux/internal-signals.h" 1
1431 syscall
1433 # 0 "" 2
1434 # 432 "pthread_create.c" 1
1435 xchgl %edx, 1564(%r8)
1436 # 0 "" 2
1437 #NO_APP
1438 cmpl $-2, %edx
1439 je .L330
1440 .L292:
1441 testl %ebx, %ebx
1442 jne .L293
1443 leaq 16(%rsp), %rax
1444 #APP
1445 # 438 "pthread_create.c" 1
1446 movq %rax,%fs:768
1447 # 0 "" 2
1448 #NO_APP
1449 movq 8(%rsp), %rax
1450 cmpb $0, 1555(%rax)
1451 jne .L294
1452 .L301:
1453 movq 8(%rsp), %rcx
1454 cmpb $0, 2416(%rcx)
1455 movq 1600(%rcx), %rax
1456 movq 1608(%rcx), %rdi
1457 jne .L295
1458 call *%rax
1459 .L302:
1460 #APP
1461 # 474 "pthread_create.c" 1
1462 movq %rax,%fs:1584
1463 # 0 "" 2
1464 #NO_APP
1465 .L293:
1466 cmpq $0, __call_tls_dtors@GOTPCREL(%rip)
1467 je .L306
1468 call __call_tls_dtors@PLT
1469 .L306:
1470 xorl %eax, %eax
1471 #APP
1472 # 258 "pthread_create.c" 1
1473 movb %fs:1552,%al
1474 # 0 "" 2
1475 #NO_APP
1476 testb %al, %al
1477 jne .L331
1478 .L305:
1479 call __libc_thread_freeres@PLT
1480 #APP
1481 # 492 "pthread_create.c" 1
1482 lock;decl __nptl_nthreads(%rip); sete %al
1483 # 0 "" 2
1484 #NO_APP
1485 testb %al, %al
1486 jne .L332
1487 movq 8(%rsp), %rax
1488 cmpb $0, 1553(%rax)
1489 jne .L309
1490 .L312:
1491 movq 8(%rsp), %rax
1492 #APP
1493 # 528 "pthread_create.c" 1
1494 lock;orl $16, 776(%rax)
1495 # 0 "" 2
1496 #NO_APP
1497 cmpb $0, 1554(%rax)
1498 jne .L310
1499 movq 8(%rsp), %rbp
1500 call __getpagesize@PLT
1501 movq %rsp, %rdx
1502 negl %eax
1503 movq 1680(%rbp), %rbx
1504 cltq
1505 subq %rbx, %rdx
1506 andq %rdx, %rax
1507 cmpq %rax, 1688(%rbp)
1508 jbe .L333
1509 cmpq $16384, %rax
1510 jbe .L310
1511 leaq -16384(%rax), %rsi
1512 movl $4, %edx
1513 movq %rbx, %rdi
1514 call __madvise@PLT
1515 .L310:
1516 movq 8(%rsp), %rax
1517 testb $64, 776(%rax)
1518 jne .L334
1519 .L316:
1520 movq 8(%rsp), %rax
1521 cmpq %rax, 1576(%rax)
1522 je .L320
1523 .L322:
1524 movl $60, %edx
1525 .p2align 4,,10
1526 .p2align 3
1527 .L321:
1528 xorl %edi, %edi
1529 movl %edx, %eax
1530 #APP
1531 # 35 "../sysdeps/unix/sysv/linux/exit-thread.h" 1
1532 syscall
1534 # 0 "" 2
1535 #NO_APP
1536 jmp .L321
1537 .L295:
1538 call *%rax
1539 cltq
1540 jmp .L302
1541 .L294:
1542 call __pthread_enable_asynccancel@PLT
1543 movl %eax, %r12d
1544 movq 8(%rsp), %rax
1545 movl $1, %edx
1546 leaq 1560(%rax), %rbp
1547 movl %ebx, %eax
1548 lock cmpxchgl %edx, 0(%rbp)
1549 jne .L297
1550 .L300:
1551 xorl %eax, %eax
1552 movq 8(%rsp), %rcx
1553 #APP
1554 # 454 "pthread_create.c" 1
1555 xchgl %eax, 1560(%rcx)
1556 # 0 "" 2
1557 #NO_APP
1558 subl $1, %eax
1559 jle .L299
1560 xorl %r10d, %r10d
1561 movl $1, %edx
1562 movl $129, %esi
1563 movq %rbp, %rdi
1564 movl $202, %eax
1565 #APP
1566 # 454 "pthread_create.c" 1
1567 syscall
1569 # 0 "" 2
1570 #NO_APP
1571 .L299:
1572 movl %r12d, %edi
1573 call __pthread_disable_asynccancel@PLT
1574 jmp .L301
1575 .L330:
1576 movq 8(%rsp), %rax
1577 xorl %r10d, %r10d
1578 movl $1, %edx
1579 movl $129, %esi
1580 leaq 1564(%rax), %rdi
1581 movl $202, %eax
1582 #APP
1583 # 209 "../sysdeps/nptl/futex-internal.h" 1
1584 syscall
1586 # 0 "" 2
1587 #NO_APP
1588 cmpq $-4096, %rax
1589 jbe .L292
1590 cmpl $-22, %eax
1591 je .L292
1592 cmpl $-14, %eax
1593 je .L292
1594 .L319:
1595 leaq .LC2(%rip), %rdi
1596 call __libc_fatal@PLT
1597 .L331:
1598 call __nptl_deallocate_tsd.part.5
1599 jmp .L305
1600 .L332:
1601 xorl %edi, %edi
1602 call exit@PLT
1603 .L333:
1604 leaq __PRETTY_FUNCTION__.13112(%rip), %rcx
1605 leaq .LC3(%rip), %rsi
1606 leaq .LC5(%rip), %rdi
1607 movl $379, %edx
1608 call __assert_fail@PLT
1609 .L297:
1610 movq %rbp, %rdi
1611 call __lll_lock_wait_private@PLT
1612 jmp .L300
1613 .L309:
1614 movq 8(%rsp), %rcx
1615 movl __nptl_threads_events(%rip), %eax
1616 orl 1616(%rcx), %eax
1617 testb $1, %ah
1618 je .L312
1619 cmpq $0, 1640(%rcx)
1620 je .L335
1621 .L313:
1622 call __nptl_death_event@PLT
1623 jmp .L312
1624 .L320:
1625 movq 8(%rsp), %rdi
1626 call __free_tcb
1627 jmp .L322
1628 .L334:
1629 leaq 1564(%rax), %rbx
1630 movl $202, %r9d
1631 movl $1, %r8d
1632 jmp .L315
1633 .L318:
1634 movq 8(%rsp), %rax
1635 testb $64, 776(%rax)
1636 je .L336
1637 .L315:
1638 xorl %r10d, %r10d
1639 xorl %edx, %edx
1640 movl $128, %esi
1641 movq %rbx, %rdi
1642 movl %r9d, %eax
1643 #APP
1644 # 146 "../sysdeps/nptl/futex-internal.h" 1
1645 syscall
1647 # 0 "" 2
1648 #NO_APP
1649 cmpq $-4096, %rax
1650 jbe .L318
1651 addl $11, %eax
1652 cmpl $11, %eax
1653 ja .L319
1654 movl %eax, %ecx
1655 movq %r8, %rsi
1656 salq %cl, %rsi
1657 movq %rsi, %rax
1658 testl $2177, %eax
1659 je .L319
1660 jmp .L318
1661 .L335:
1662 movq %rcx, %rax
1663 movl $9, 1624(%rcx)
1664 movq %rcx, 1632(%rax)
1665 .L314:
1666 movq __nptl_last_event(%rip), %rax
1667 movq 8(%rsp), %rcx
1668 movq %rax, 1640(%rcx)
1669 lock cmpxchgq %rcx, __nptl_last_event(%rip)
1670 je .L313
1671 jmp .L314
1672 .L336:
1673 movl $0, 1564(%rax)
1674 jmp .L316
1675 .size start_thread, .-start_thread
1676 .section .rodata.str1.1
1677 .LC6:
1678 .string "powerof2 (pagesize_m1 + 1)"
1679 .LC7:
1680 .string "size > adj + TLS_TCB_SIZE"
1681 .LC8:
1682 .string "errno == ENOMEM"
1683 .LC9:
1684 .string "size != 0"
1685 .LC10:
1686 .string "mem != NULL"
1687 .LC11:
1688 .string "pthread_create.c"
1689 .LC12:
1690 .string "stopped_start"
1691 .LC13:
1692 .string "pd->stopped_start"
1693 .text
1694 .p2align 4,,15
1695 .globl __pthread_create_2_1
1696 .type __pthread_create_2_1, @function
1697 __pthread_create_2_1:
1698 pushq %r15
1699 pushq %r14
1700 pushq %r13
1701 pushq %r12
1702 movq %rsi, %r13
1703 pushq %rbp
1704 pushq %rbx
1705 subq $280, %rsp
1706 cmpb $0, __libc_single_threaded(%rip)
1707 movq %rdi, (%rsp)
1708 movq %rdx, 8(%rsp)
1709 movq %rcx, 16(%rsp)
1710 je .L338
1711 movb $0, __libc_single_threaded(%rip)
1712 .L338:
1713 leaq -1(%r13), %rax
1714 cmpq $-3, %rax
1715 jbe .L414
1716 leaq 80(%rsp), %rbp
1717 movq %rbp, %rdi
1718 call __pthread_getattr_default_np@PLT
1719 testl %eax, %eax
1720 movl %eax, %r8d
1721 jne .L337
1722 movb $1, 43(%rsp)
1723 jmp .L339
1724 .p2align 4,,10
1725 .p2align 3
1726 .L414:
1727 movq %r13, %rbp
1728 movb $0, 43(%rsp)
1729 .L339:
1730 call __getpagesize@PLT
1731 leal -1(%rax), %r9d
1732 movl %eax, %r12d
1733 movslq %r9d, %r9
1734 leaq 1(%r9), %r8
1735 movq %r9, %r14
1736 andq %r8, %r14
1737 jne .L484
1738 movq 32(%rbp), %rbx
1739 testq %rbx, %rbx
1740 je .L485
1741 testb $8, 8(%rbp)
1742 jne .L486
1743 .L345:
1744 movq __static_tls_align_m1(%rip), %rax
1745 notq %rax
1746 andq %rax, %rbx
1747 je .L487
1748 movq 16(%rbp), %rdx
1749 negl %r12d
1750 movslq %r12d, %rax
1751 leaq (%r9,%rdx), %r12
1752 andq %rax, %r12
1753 cmpq %r12, %rdx
1754 jbe .L488
1755 .L354:
1756 movl $22, %r8d
1757 .L347:
1758 cmpb $0, 43(%rsp)
1759 je .L337
1760 leaq 80(%rsp), %rdi
1761 movl %r8d, (%rsp)
1762 call __pthread_attr_destroy@PLT
1763 movl (%rsp), %r8d
1764 .L337:
1765 addq $280, %rsp
1766 movl %r8d, %eax
1767 popq %rbx
1768 popq %rbp
1769 popq %r12
1770 popq %r13
1771 popq %r14
1772 popq %r15
1774 .p2align 4,,10
1775 .p2align 3
1776 .L488:
1777 addq %r12, %rbx
1778 jc .L354
1779 movq __static_tls_size(%rip), %rdx
1780 leaq 2048(%r9,%rdx), %rdx
1781 addq %r12, %rdx
1782 andq %rdx, %rax
1783 cmpq %rax, %rbx
1784 jb .L354
1785 movl _dl_stack_flags(%rip), %r15d
1786 xorl %eax, %eax
1787 movl $1, %ecx
1788 lock cmpxchgl %ecx, _dl_stack_cache_lock(%rip)
1789 jne .L489
1790 .L357:
1791 leal 0(,%r15,4), %eax
1792 leaq stack_cache(%rip), %rdx
1793 andl $4, %eax
1794 movl %eax, 48(%rsp)
1795 orl $3, %eax
1796 movl %eax, 44(%rsp)
1797 movq stack_cache(%rip), %rax
1798 cmpq %rdx, %rax
1799 je .L358
1800 xorl %r15d, %r15d
1801 jmp .L361
1802 .p2align 4,,10
1803 .p2align 3
1804 .L359:
1805 movq (%rax), %rax
1806 cmpq %rdx, %rax
1807 je .L360
1808 .L361:
1809 movl 16(%rax), %ecx
1810 testl %ecx, %ecx
1811 jg .L359
1812 movq 984(%rax), %rcx
1813 cmpq %rcx, %rbx
1814 ja .L359
1815 cmpq %rcx, %rbx
1816 leaq -704(%rax), %rsi
1817 je .L415
1818 testq %r15, %r15
1819 je .L416
1820 cmpq 1688(%r15), %rcx
1821 movq (%rax), %rax
1822 cmovb %rsi, %r15
1823 cmpq %rdx, %rax
1824 jne .L361
1825 .p2align 4,,10
1826 .p2align 3
1827 .L360:
1828 testq %r15, %r15
1829 je .L358
1830 leaq 0(,%rbx,4), %rax
1831 cmpq %rax, 1688(%r15)
1832 ja .L358
1833 leaq 704(%r15), %rsi
1834 movl $-1, 1564(%r15)
1835 movq %rsi, 56(%rsp)
1836 movq %rsi, in_flight_stack(%rip)
1837 movq 712(%r15), %rdx
1838 movq 704(%r15), %rax
1839 movq %rdx, 8(%rax)
1840 movq 712(%r15), %rdx
1841 movq %rax, (%rdx)
1842 movq %rsi, %rax
1843 orq $1, %rax
1844 movq %rax, in_flight_stack(%rip)
1845 movq _dl_stack_used(%rip), %rax
1846 leaq _dl_stack_used(%rip), %rdi
1847 movq %rdi, 712(%r15)
1848 movq %rax, 704(%r15)
1849 movq %rsi, 8(%rax)
1850 movq %rsi, _dl_stack_used(%rip)
1851 movq $0, in_flight_stack(%rip)
1852 movq 1688(%r15), %rdx
1853 xorl %eax, %eax
1854 subq %rdx, stack_cache_actsize(%rip)
1855 #APP
1856 # 215 "allocatestack.c" 1
1857 xchgl %eax, _dl_stack_cache_lock(%rip)
1858 # 0 "" 2
1859 #NO_APP
1860 cmpl $1, %eax
1861 jg .L490
1862 .L364:
1863 movq 8(%r15), %rcx
1864 pxor %xmm0, %xmm0
1865 movq 1680(%r15), %rax
1866 movq %rdx, 24(%rsp)
1867 movl $0, 776(%r15)
1868 movq $0, 760(%r15)
1869 cmpq $0, -16(%rcx)
1870 movq $0, 1640(%r15)
1871 movq %rax, 32(%rsp)
1872 movups %xmm0, 2424(%r15)
1873 je .L418
1874 movq %rbx, 48(%rsp)
1875 movq %rcx, %rbx
1876 .p2align 4,,10
1877 .p2align 3
1878 .L366:
1879 addq $1, %r14
1880 movq %r14, %rax
1881 salq $4, %rax
1882 movq 8(%rbx,%rax), %rdi
1883 call free@PLT
1884 movq -16(%rbx), %rax
1885 cmpq %rax, %r14
1886 jb .L366
1887 movq %rbx, %rcx
1888 leaq 1(%rax), %rdx
1889 movq 48(%rsp), %rbx
1890 salq $4, %rdx
1891 .L365:
1892 movq %rcx, %rdi
1893 xorl %esi, %esi
1894 call memset@PLT
1895 movq %r15, %rdi
1896 call _dl_allocate_tls_init@PLT
1897 .L367:
1898 movq 1696(%r15), %rsi
1899 cmpq %rsi, %r12
1900 ja .L491
1901 movq 24(%rsp), %rax
1902 subq %r12, %rsi
1903 subq %rbx, %rax
1904 cmpq %rax, %rsi
1905 ja .L492
1906 .L383:
1907 movq %r12, 1704(%r15)
1908 .L352:
1909 leaq 736(%r15), %rax
1910 movl $0, 1560(%r15)
1911 movq $-32, 744(%r15)
1912 movq $0, 752(%r15)
1913 movq %r15, 16(%r15)
1914 movq %rax, 728(%r15)
1915 movq %rax, 736(%r15)
1916 movq %r15, %rax
1917 subq __static_tls_size(%rip), %rax
1918 cmpq $-1, %r13
1919 movq %r15, (%r15)
1920 sete 2416(%r15)
1921 movl 8(%rbp), %esi
1922 leaq 2496(%rax), %rbx
1923 movq 8(%rsp), %rax
1924 movl %esi, %ecx
1925 andl $-97, %ecx
1926 movq %rax, 1600(%r15)
1927 movq 16(%rsp), %rax
1928 movq %rax, 1608(%r15)
1929 movq %fs:16, %rdx
1930 movl 780(%rdx), %eax
1931 movdqa 1616(%rdx), %xmm0
1932 andl $96, %eax
1933 orl %ecx, %eax
1934 testb $1, %sil
1935 movl $0, %ecx
1936 cmovne %r15, %rcx
1937 movl %eax, 780(%r15)
1938 movq %rcx, 1576(%r15)
1939 movaps %xmm0, 1616(%r15)
1940 movq 1632(%rdx), %rcx
1941 movq %rcx, 1632(%r15)
1942 movl 1596(%rdx), %ecx
1943 movl 1592(%rdx), %edx
1944 movl %ecx, 1596(%r15)
1945 movl %edx, 1592(%r15)
1946 #APP
1947 # 697 "pthread_create.c" 1
1948 movq %fs:40,%rdx
1949 # 0 "" 2
1950 #NO_APP
1951 movq %rdx, 40(%r15)
1952 #APP
1953 # 702 "pthread_create.c" 1
1954 movq %fs:48,%rdx
1955 # 0 "" 2
1956 #NO_APP
1957 movq %rdx, 48(%r15)
1958 #APP
1959 # 22 "../sysdeps/x86/nptl/tls-setup.h" 1
1960 movl %fs:72,%edx
1961 # 0 "" 2
1962 #NO_APP
1963 testb $2, %sil
1964 movl %edx, 72(%r15)
1965 jne .L493
1966 .L390:
1967 cmpl $1, __nptl_nthreads(%rip)
1968 je .L494
1969 .L395:
1970 movq (%rsp), %rax
1971 movq %r15, (%rax)
1972 #APP
1973 # 751 "pthread_create.c" 1
1974 lock;incl __nptl_nthreads(%rip)
1975 # 0 "" 2
1976 #NO_APP
1977 leaq 144(%rsp), %r12
1978 movb $0, 78(%rsp)
1979 movb $0, 79(%rsp)
1980 movl $8, %r10d
1981 leaq sigall_set(%rip), %rsi
1982 xorl %edi, %edi
1983 movq %r12, %rdx
1984 movl $14, %eax
1985 #APP
1986 # 71 "../sysdeps/unix/sysv/linux/internal-signals.h" 1
1987 syscall
1989 # 0 "" 2
1990 #NO_APP
1991 movq 40(%rbp), %rax
1992 testq %rax, %rax
1993 je .L396
1994 cmpb $0, 144(%rax)
1995 je .L396
1996 movdqu 16(%rax), %xmm0
1997 movaps %xmm0, 2288(%r15)
1998 movdqu 32(%rax), %xmm0
1999 movaps %xmm0, 2304(%r15)
2000 movdqu 48(%rax), %xmm0
2001 movaps %xmm0, 2320(%r15)
2002 movdqu 64(%rax), %xmm0
2003 movaps %xmm0, 2336(%r15)
2004 movdqu 80(%rax), %xmm0
2005 movaps %xmm0, 2352(%r15)
2006 movdqu 96(%rax), %xmm0
2007 movaps %xmm0, 2368(%r15)
2008 movdqu 112(%rax), %xmm0
2009 movaps %xmm0, 2384(%r15)
2010 movdqu 128(%rax), %xmm0
2011 movaps %xmm0, 2400(%r15)
2012 .L397:
2013 xorl %eax, %eax
2014 #APP
2015 # 606 "pthread_create.c" 1
2016 movb %fs:1553,%al
2017 # 0 "" 2
2018 #NO_APP
2019 testb %al, %al
2020 jne .L495
2021 .L398:
2022 leaq 79(%rsp), %r8
2023 leaq 78(%rsp), %rdx
2024 movq %rbx, %rcx
2025 movq %rbp, %rsi
2026 movq %r15, %rdi
2027 call create_thread
2028 movl %eax, %r8d
2029 .L399:
2030 movl $8, %r10d
2031 xorl %edx, %edx
2032 movq %r12, %rsi
2033 movl $2, %edi
2034 movl $14, %eax
2035 #APP
2036 # 105 "../sysdeps/unix/sysv/linux/internal-signals.h" 1
2037 syscall
2039 # 0 "" 2
2040 #NO_APP
2041 testl %r8d, %r8d
2042 jne .L496
2043 .L403:
2044 cmpb $0, 78(%rsp)
2045 je .L410
2046 leaq 1560(%r15), %rdi
2047 xorl %eax, %eax
2048 #APP
2049 # 870 "pthread_create.c" 1
2050 xchgl %eax, 1560(%r15)
2051 # 0 "" 2
2052 #NO_APP
2053 cmpl $1, %eax
2054 jg .L497
2055 .L410:
2056 #APP
2057 # 875 "pthread_create.c" 1
2058 movl $1,%fs:24
2059 # 0 "" 2
2060 #NO_APP
2061 xorl %r8d, %r8d
2062 jmp .L347
2063 .p2align 4,,10
2064 .p2align 3
2065 .L485:
2066 xorl %eax, %eax
2067 movl $1, %edx
2068 lock cmpxchgl %edx, __default_pthread_attr_lock(%rip)
2069 jne .L498
2070 .L343:
2071 movq 32+__default_pthread_attr(%rip), %rbx
2072 xorl %eax, %eax
2073 #APP
2074 # 419 "allocatestack.c" 1
2075 xchgl %eax, __default_pthread_attr_lock(%rip)
2076 # 0 "" 2
2077 #NO_APP
2078 cmpl $1, %eax
2079 jg .L499
2080 .L344:
2081 testb $8, 8(%rbp)
2082 je .L345
2083 movq 32(%rbp), %rax
2084 movq 24(%rbp), %rdx
2085 testq %rax, %rax
2086 jne .L412
2087 .L346:
2088 movq __static_tls_align_m1(%rip), %rax
2089 leaq -2496(%rdx), %r9
2090 andq %r9, %rax
2091 leaq 2496(%rax), %rcx
2092 cmpq %rcx, %rbx
2093 jbe .L500
2094 subq %rax, %r9
2095 xorl %eax, %eax
2096 subq %rbx, %rdx
2097 leaq 8(%r9), %rdi
2098 movq %r9, %rcx
2099 movq $0, (%r9)
2100 movq $0, 2488(%r9)
2101 movq %r9, %r15
2102 andq $-8, %rdi
2103 subq %rdi, %rcx
2104 addl $2496, %ecx
2105 shrl $3, %ecx
2106 rep stosq
2107 leaq 784(%r9), %rax
2108 movq %rdx, 1680(%r9)
2109 movq %rbx, 1688(%r9)
2110 movb $1, 1554(%r9)
2111 movl $1, 24(%r9)
2112 movq %r9, %rdi
2113 movq %rax, 1296(%r9)
2114 movq __libc_multiple_threads_ptr(%rip), %rax
2115 movl $1, (%rax)
2116 movl $-1, 1564(%r9)
2117 movl $1, __pthread_multiple_threads(%rip)
2118 call _dl_allocate_tls@PLT
2119 testq %rax, %rax
2120 je .L501
2121 xorl %eax, %eax
2122 movl $1, %edx
2123 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
2124 jne .L502
2125 .L351:
2126 movq _dl_stack_user(%rip), %rdx
2127 leaq 704(%r15), %rax
2128 leaq _dl_stack_user(%rip), %rbx
2129 movq %rbx, 712(%r15)
2130 movq %rdx, 704(%r15)
2131 movq %rax, 8(%rdx)
2132 movq %rax, _dl_stack_user(%rip)
2133 xorl %eax, %eax
2134 #APP
2135 # 506 "allocatestack.c" 1
2136 xchgl %eax, _dl_stack_cache_lock(%rip)
2137 # 0 "" 2
2138 #NO_APP
2139 cmpl $1, %eax
2140 jle .L352
2141 xorl %r10d, %r10d
2142 movl $1, %edx
2143 movl $129, %esi
2144 leaq _dl_stack_cache_lock(%rip), %rdi
2145 movl $202, %eax
2146 #APP
2147 # 506 "allocatestack.c" 1
2148 syscall
2150 # 0 "" 2
2151 #NO_APP
2152 jmp .L352
2153 .p2align 4,,10
2154 .p2align 3
2155 .L396:
2156 movdqa 144(%rsp), %xmm0
2157 movabsq $-2147483649, %rax
2158 movaps %xmm0, 2288(%r15)
2159 andq %rax, 2288(%r15)
2160 movdqa 160(%rsp), %xmm0
2161 movaps %xmm0, 2304(%r15)
2162 movdqa 176(%rsp), %xmm0
2163 movaps %xmm0, 2320(%r15)
2164 movdqa 192(%rsp), %xmm0
2165 movaps %xmm0, 2336(%r15)
2166 movdqa 208(%rsp), %xmm0
2167 movaps %xmm0, 2352(%r15)
2168 movdqa 224(%rsp), %xmm0
2169 movaps %xmm0, 2368(%r15)
2170 movdqa 240(%rsp), %xmm0
2171 movaps %xmm0, 2384(%r15)
2172 movdqa 256(%rsp), %xmm0
2173 movaps %xmm0, 2400(%r15)
2174 jmp .L397
2175 .p2align 4,,10
2176 .p2align 3
2177 .L416:
2178 movq %rsi, %r15
2179 jmp .L359
2180 .p2align 4,,10
2181 .p2align 3
2182 .L494:
2183 call _IO_enable_locks@PLT
2184 jmp .L395
2185 .p2align 4,,10
2186 .p2align 3
2187 .L496:
2188 cmpb $0, 79(%rsp)
2189 jne .L503
2190 #APP
2191 # 844 "pthread_create.c" 1
2192 lock;decl __nptl_nthreads(%rip)
2193 # 0 "" 2
2194 #NO_APP
2195 xorl %eax, %eax
2196 #APP
2197 # 848 "pthread_create.c" 1
2198 xchgl %eax, 1564(%r15)
2199 # 0 "" 2
2200 #NO_APP
2201 cmpl $-2, %eax
2202 je .L504
2203 .L408:
2204 movq %r15, %rdi
2205 movl %r8d, (%rsp)
2206 call __deallocate_stack
2207 movl (%rsp), %r8d
2208 .L405:
2209 cmpl $12, %r8d
2210 jne .L347
2211 .L388:
2212 movl $11, %r8d
2213 jmp .L347
2214 .p2align 4,,10
2215 .p2align 3
2216 .L495:
2217 movl __nptl_threads_events(%rip), %eax
2218 orl 1616(%r15), %eax
2219 testb $-128, %al
2220 je .L398
2221 leaq 79(%rsp), %r8
2222 leaq 78(%rsp), %rdx
2223 movq %rbx, %rcx
2224 movq %rbp, %rsi
2225 movq %r15, %rdi
2226 movb $1, 78(%rsp)
2227 call create_thread
2228 testl %eax, %eax
2229 movl %eax, %r8d
2230 jne .L399
2231 cmpb $0, 78(%rsp)
2232 je .L505
2233 cmpb $0, 1555(%r15)
2234 je .L506
2235 movl $8, 1624(%r15)
2236 movq %r15, 1632(%r15)
2237 .L402:
2238 movq __nptl_last_event(%rip), %rax
2239 movq %rax, 1640(%r15)
2240 lock cmpxchgq %r15, __nptl_last_event(%rip)
2241 jne .L402
2242 call __nptl_create_event@PLT
2243 movl $8, %r10d
2244 xorl %edx, %edx
2245 movq %r12, %rsi
2246 movl $2, %edi
2247 movl $14, %eax
2248 #APP
2249 # 105 "../sysdeps/unix/sysv/linux/internal-signals.h" 1
2250 syscall
2252 # 0 "" 2
2253 #NO_APP
2254 jmp .L403
2255 .p2align 4,,10
2256 .p2align 3
2257 .L493:
2258 testb $96, %sil
2259 je .L390
2260 testb $64, %sil
2261 je .L392
2262 movl 4(%rbp), %edx
2263 orl $64, %eax
2264 movl %eax, 780(%r15)
2265 movl %edx, 1596(%r15)
2266 .L392:
2267 andl $32, %esi
2268 je .L393
2269 movl 0(%rbp), %edx
2270 orl $32, %eax
2271 movl %eax, 780(%r15)
2272 movl %edx, 1592(%r15)
2273 .L393:
2274 movl %eax, %edx
2275 andl $96, %edx
2276 cmpl $96, %edx
2277 je .L390
2278 testb $64, %al
2279 jne .L394
2280 xorl %edi, %edi
2281 movl $145, %eax
2282 #APP
2283 # 31 "../sysdeps/unix/sysv/linux/default-sched.h" 1
2284 syscall
2286 # 0 "" 2
2287 #NO_APP
2288 movl %eax, 1596(%r15)
2289 movl 780(%r15), %eax
2290 orl $64, %eax
2291 movl %eax, 780(%r15)
2292 .L394:
2293 testb $32, %al
2294 jne .L390
2295 leaq 1592(%r15), %rsi
2296 xorl %edi, %edi
2297 movl $143, %eax
2298 #APP
2299 # 37 "../sysdeps/unix/sysv/linux/default-sched.h" 1
2300 syscall
2302 # 0 "" 2
2303 #NO_APP
2304 orl $32, 780(%r15)
2305 jmp .L390
2306 .p2align 4,,10
2307 .p2align 3
2308 .L486:
2309 movq 24(%rbp), %rdx
2310 movq %rbx, %rax
2311 .L412:
2312 movq __static_tls_size(%rip), %rdi
2313 leaq 2048(%rdi), %rcx
2314 cmpq %rax, %rcx
2315 jbe .L346
2316 jmp .L354
2317 .p2align 4,,10
2318 .p2align 3
2319 .L503:
2320 cmpb $0, 78(%rsp)
2321 jne .L405
2322 leaq __PRETTY_FUNCTION__.13628(%rip), %rcx
2323 leaq .LC11(%rip), %rsi
2324 leaq .LC12(%rip), %rdi
2325 movl $837, %edx
2326 call __assert_fail@PLT
2327 .p2align 4,,10
2328 .p2align 3
2329 .L489:
2330 leaq _dl_stack_cache_lock(%rip), %rdi
2331 movq %r8, 24(%rsp)
2332 call __lll_lock_wait_private@PLT
2333 movq 24(%rsp), %r8
2334 jmp .L357
2335 .p2align 4,,10
2336 .p2align 3
2337 .L358:
2338 xorl %eax, %eax
2339 #APP
2340 # 197 "allocatestack.c" 1
2341 xchgl %eax, _dl_stack_cache_lock(%rip)
2342 # 0 "" 2
2343 #NO_APP
2344 cmpl $1, %eax
2345 jg .L507
2346 .L363:
2347 leaq (%r8,%rbx), %r15
2348 testw %bx, %bx
2349 movl $0, %edx
2350 movl $-1, %r8d
2351 movl $131106, %ecx
2352 movq %r15, %rsi
2353 cmovne %rbx, %rsi
2354 testq %r12, %r12
2355 cmove 44(%rsp), %edx
2356 xorl %r9d, %r9d
2357 xorl %edi, %edi
2358 movq %rsi, 24(%rsp)
2359 call __mmap@PLT
2360 cmpq $-1, %rax
2361 movq %rax, 32(%rsp)
2362 je .L482
2363 cmpq $0, 32(%rsp)
2364 je .L508
2365 movq 32(%rsp), %rcx
2366 movq 24(%rsp), %rdi
2367 movq __static_tls_align_m1(%rip), %rax
2368 leaq -2496(%rcx,%rdi), %r9
2369 notq %rax
2370 andq %rax, %r9
2371 testq %r12, %r12
2372 movq %r9, %r15
2373 je .L373
2374 subq %r12, %rdi
2375 movl 44(%rsp), %edx
2376 movq %rdi, %rsi
2377 leaq (%rcx,%r12), %rdi
2378 call __mprotect@PLT
2379 testl %eax, %eax
2380 je .L373
2381 movq errno@gottpoff(%rip), %r14
2382 movl %fs:(%r14), %edx
2383 testl %edx, %edx
2384 jne .L509
2385 .L373:
2386 movq 32(%rsp), %rax
2387 movq %r12, 1696(%r15)
2388 movq %r15, %rdi
2389 movl $1, 24(%r15)
2390 movq %rax, 1680(%r15)
2391 movq 24(%rsp), %rax
2392 movq %rax, 1688(%r15)
2393 leaq 784(%r15), %rax
2394 movq %rax, 1296(%r15)
2395 movq __libc_multiple_threads_ptr(%rip), %rax
2396 movl $1, (%rax)
2397 movl $-1, 1564(%r15)
2398 movl $1, __pthread_multiple_threads(%rip)
2399 call _dl_allocate_tls@PLT
2400 testq %rax, %rax
2401 je .L510
2402 xorl %eax, %eax
2403 movl $1, %edx
2404 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
2405 jne .L511
2406 .L376:
2407 leaq 704(%r15), %rdi
2408 movq %rdi, %rax
2409 movq %rdi, 56(%rsp)
2410 orq $1, %rax
2411 movq %rax, in_flight_stack(%rip)
2412 movq _dl_stack_used(%rip), %rax
2413 leaq _dl_stack_used(%rip), %rsi
2414 movq %rsi, 712(%r15)
2415 movq %rax, 704(%r15)
2416 movq %rdi, 8(%rax)
2417 movq %rdi, _dl_stack_used(%rip)
2418 movq $0, in_flight_stack(%rip)
2419 xorl %eax, %eax
2420 #APP
2421 # 640 "allocatestack.c" 1
2422 xchgl %eax, _dl_stack_cache_lock(%rip)
2423 # 0 "" 2
2424 #NO_APP
2425 cmpl $1, %eax
2426 jg .L512
2427 .L377:
2428 testb $1, _dl_stack_flags(%rip)
2429 je .L367
2430 movl 48(%rsp), %eax
2431 testl %eax, %eax
2432 jne .L367
2433 movq %r15, %rdi
2434 call change_stack_perm
2435 testl %eax, %eax
2436 je .L367
2437 movq 24(%rsp), %rsi
2438 movq 32(%rsp), %rdi
2439 movl %eax, (%rsp)
2440 call __munmap@PLT
2441 movl (%rsp), %r8d
2442 jmp .L405
2443 .p2align 4,,10
2444 .p2align 3
2445 .L497:
2446 xorl %r10d, %r10d
2447 movl $1, %edx
2448 movl $129, %esi
2449 movl $202, %eax
2450 #APP
2451 # 870 "pthread_create.c" 1
2452 syscall
2454 # 0 "" 2
2455 #NO_APP
2456 jmp .L410
2457 .p2align 4,,10
2458 .p2align 3
2459 .L501:
2460 movq errno@gottpoff(%rip), %rax
2461 cmpl $12, %fs:(%rax)
2462 je .L388
2463 leaq __PRETTY_FUNCTION__.13121(%rip), %rcx
2464 leaq .LC3(%rip), %rsi
2465 leaq .LC8(%rip), %rdi
2466 movl $495, %edx
2467 call __assert_fail@PLT
2468 .p2align 4,,10
2469 .p2align 3
2470 .L415:
2471 movq %rsi, %r15
2472 jmp .L360
2473 .p2align 4,,10
2474 .p2align 3
2475 .L498:
2476 leaq __default_pthread_attr_lock(%rip), %rdi
2477 movq %r8, 32(%rsp)
2478 movq %r9, 24(%rsp)
2479 call __lll_lock_wait_private@PLT
2480 movq 32(%rsp), %r8
2481 movq 24(%rsp), %r9
2482 jmp .L343
2483 .p2align 4,,10
2484 .p2align 3
2485 .L499:
2486 xorl %r10d, %r10d
2487 movl $1, %edx
2488 movl $129, %esi
2489 leaq __default_pthread_attr_lock(%rip), %rdi
2490 movl $202, %eax
2491 #APP
2492 # 419 "allocatestack.c" 1
2493 syscall
2495 # 0 "" 2
2496 #NO_APP
2497 jmp .L344
2498 .p2align 4,,10
2499 .p2align 3
2500 .L418:
2501 movl $16, %edx
2502 jmp .L365
2503 .L491:
2504 movq 32(%rsp), %rdi
2505 xorl %edx, %edx
2506 movq %r12, %rsi
2507 call __mprotect@PLT
2508 testl %eax, %eax
2509 je .L481
2510 .L384:
2511 xorl %eax, %eax
2512 movl $1, %edx
2513 lock cmpxchgl %edx, _dl_stack_cache_lock(%rip)
2514 jne .L513
2515 .L381:
2516 movq 56(%rsp), %rax
2517 movq %rax, in_flight_stack(%rip)
2518 movq 712(%r15), %rdx
2519 movq 704(%r15), %rax
2520 movq %rdx, 8(%rax)
2521 movq 712(%r15), %rdx
2522 movq %rax, (%rdx)
2523 movq $0, in_flight_stack(%rip)
2524 xorl %eax, %eax
2525 #APP
2526 # 686 "allocatestack.c" 1
2527 xchgl %eax, _dl_stack_cache_lock(%rip)
2528 # 0 "" 2
2529 #NO_APP
2530 cmpl $1, %eax
2531 jg .L514
2532 .L382:
2533 xorl %esi, %esi
2534 movq %r15, %rdi
2535 call _dl_deallocate_tls@PLT
2536 movq 24(%rsp), %rsi
2537 movq 32(%rsp), %rdi
2538 call __munmap@PLT
2539 .L482:
2540 movq errno@gottpoff(%rip), %rax
2541 movl %fs:(%rax), %r8d
2542 .L371:
2543 testl %r8d, %r8d
2544 jne .L405
2545 movq $0, 16
2547 .p2align 4,,10
2548 .p2align 3
2549 .L510:
2550 movq errno@gottpoff(%rip), %rbx
2551 cmpl $12, %fs:(%rbx)
2552 jne .L515
2553 movq 24(%rsp), %rsi
2554 movq 32(%rsp), %rdi
2555 call __munmap@PLT
2556 movl %fs:(%rbx), %r8d
2557 jmp .L371
2558 .L490:
2559 xorl %r10d, %r10d
2560 movl $1, %edx
2561 movl $129, %esi
2562 leaq _dl_stack_cache_lock(%rip), %rdi
2563 movl $202, %eax
2564 #APP
2565 # 215 "allocatestack.c" 1
2566 syscall
2568 # 0 "" 2
2569 #NO_APP
2570 movq 1688(%r15), %rdx
2571 jmp .L364
2572 .L492:
2573 movq 32(%rsp), %rax
2574 movl 44(%rsp), %edx
2575 leaq (%rax,%r12), %rdi
2576 call __mprotect@PLT
2577 testl %eax, %eax
2578 jne .L384
2579 .L481:
2580 movq %r12, 1696(%r15)
2581 jmp .L383
2582 .L509:
2583 movq 24(%rsp), %rsi
2584 movq 32(%rsp), %rdi
2585 call __munmap@PLT
2586 movl %fs:(%r14), %r8d
2587 jmp .L371
2588 .L502:
2589 leaq _dl_stack_cache_lock(%rip), %rdi
2590 call __lll_lock_wait_private@PLT
2591 jmp .L351
2592 .L507:
2593 xorl %r10d, %r10d
2594 movl $1, %edx
2595 movl $129, %esi
2596 leaq _dl_stack_cache_lock(%rip), %rdi
2597 movl $202, %eax
2598 #APP
2599 # 197 "allocatestack.c" 1
2600 syscall
2602 # 0 "" 2
2603 #NO_APP
2604 jmp .L363
2605 .L504:
2606 leaq 1564(%r15), %rdi
2607 xorl %r10d, %r10d
2608 movl $1, %edx
2609 movl $129, %esi
2610 movl $202, %eax
2611 #APP
2612 # 209 "../sysdeps/nptl/futex-internal.h" 1
2613 syscall
2615 # 0 "" 2
2616 #NO_APP
2617 cmpq $-4096, %rax
2618 jbe .L408
2619 cmpl $-22, %eax
2620 je .L408
2621 cmpl $-14, %eax
2622 je .L408
2623 leaq .LC2(%rip), %rdi
2624 call __libc_fatal@PLT
2625 .p2align 4,,10
2626 .p2align 3
2627 .L512:
2628 xorl %r10d, %r10d
2629 movl $1, %edx
2630 movl $129, %esi
2631 leaq _dl_stack_cache_lock(%rip), %rdi
2632 movl $202, %eax
2633 #APP
2634 # 640 "allocatestack.c" 1
2635 syscall
2637 # 0 "" 2
2638 #NO_APP
2639 jmp .L377
2640 .L511:
2641 leaq _dl_stack_cache_lock(%rip), %rdi
2642 call __lll_lock_wait_private@PLT
2643 jmp .L376
2644 .L513:
2645 leaq _dl_stack_cache_lock(%rip), %rdi
2646 call __lll_lock_wait_private@PLT
2647 jmp .L381
2648 .L514:
2649 xorl %r10d, %r10d
2650 movl $1, %edx
2651 movl $129, %esi
2652 leaq _dl_stack_cache_lock(%rip), %rdi
2653 movl $202, %eax
2654 #APP
2655 # 686 "allocatestack.c" 1
2656 syscall
2658 # 0 "" 2
2659 #NO_APP
2660 jmp .L382
2661 .L487:
2662 leaq __PRETTY_FUNCTION__.13121(%rip), %rcx
2663 leaq .LC3(%rip), %rsi
2664 leaq .LC9(%rip), %rdi
2665 movl $520, %edx
2666 call __assert_fail@PLT
2667 .L484:
2668 leaq __PRETTY_FUNCTION__.13121(%rip), %rcx
2669 leaq .LC3(%rip), %rsi
2670 leaq .LC6(%rip), %rdi
2671 movl $408, %edx
2672 call __assert_fail@PLT
2673 .L500:
2674 leaq __PRETTY_FUNCTION__.13121(%rip), %rcx
2675 leaq .LC3(%rip), %rsi
2676 leaq .LC7(%rip), %rdi
2677 movl $444, %edx
2678 call __assert_fail@PLT
2679 .L508:
2680 leaq __PRETTY_FUNCTION__.13121(%rip), %rcx
2681 leaq .LC3(%rip), %rsi
2682 leaq .LC10(%rip), %rdi
2683 movl $570, %edx
2684 call __assert_fail@PLT
2685 .L515:
2686 leaq __PRETTY_FUNCTION__.13121(%rip), %rcx
2687 leaq .LC3(%rip), %rsi
2688 leaq .LC8(%rip), %rdi
2689 movl $625, %edx
2690 call __assert_fail@PLT
2691 .L506:
2692 leaq __PRETTY_FUNCTION__.13628(%rip), %rcx
2693 leaq .LC11(%rip), %rsi
2694 leaq .LC13(%rip), %rdi
2695 movl $799, %edx
2696 call __assert_fail@PLT
2697 .L505:
2698 leaq __PRETTY_FUNCTION__.13628(%rip), %rcx
2699 leaq .LC11(%rip), %rsi
2700 leaq .LC12(%rip), %rdi
2701 movl $798, %edx
2702 call __assert_fail@PLT
2703 .size __pthread_create_2_1, .-__pthread_create_2_1
2704 .weak pthread_create
2705 .set pthread_create,__pthread_create_2_1
2706 .section .rodata.str1.16,"aMS",@progbits,1
2707 .align 16
2708 .type __PRETTY_FUNCTION__.13112, @object
2709 .size __PRETTY_FUNCTION__.13112, 19
2710 __PRETTY_FUNCTION__.13112:
2711 .string "advise_stack_range"
2712 .section .rodata.str1.8
2713 .align 8
2714 .type __PRETTY_FUNCTION__.13456, @object
2715 .size __PRETTY_FUNCTION__.13456, 14
2716 __PRETTY_FUNCTION__.13456:
2717 .string "create_thread"
2718 .align 8
2719 .type __PRETTY_FUNCTION__.13121, @object
2720 .size __PRETTY_FUNCTION__.13121, 15
2721 __PRETTY_FUNCTION__.13121:
2722 .string "allocate_stack"
2723 .section .rodata.str1.16
2724 .align 16
2725 .type __PRETTY_FUNCTION__.13628, @object
2726 .size __PRETTY_FUNCTION__.13628, 21
2727 __PRETTY_FUNCTION__.13628:
2728 .string "__pthread_create_2_1"
2729 .align 16
2730 .type __PRETTY_FUNCTION__.13263, @object
2731 .size __PRETTY_FUNCTION__.13263, 17
2732 __PRETTY_FUNCTION__.13263:
2733 .string "__reclaim_stacks"
2734 .globl _thread_db_const_thread_area
2735 .section .rodata.cst4,"aM",@progbits,4
2736 .align 4
2737 .type _thread_db_const_thread_area, @object
2738 .size _thread_db_const_thread_area, 4
2739 _thread_db_const_thread_area:
2740 .long 25
2741 .globl _thread_db_dtv_slotinfo_list_slotinfo
2742 .section .rodata
2743 .align 8
2744 .type _thread_db_dtv_slotinfo_list_slotinfo, @object
2745 .size _thread_db_dtv_slotinfo_list_slotinfo, 12
2746 _thread_db_dtv_slotinfo_list_slotinfo:
2747 .long 128
2748 .long 0
2749 .long 16
2750 .globl _thread_db__dl_stack_user
2751 .align 8
2752 .type _thread_db__dl_stack_user, @object
2753 .size _thread_db__dl_stack_user, 12
2754 _thread_db__dl_stack_user:
2755 .long 128
2756 .long 1
2757 .long 0
2758 .globl _thread_db__dl_stack_used
2759 .set _thread_db__dl_stack_used,_thread_db__dl_stack_user
2760 .globl _thread_db_dtv_dtv
2761 .align 8
2762 .type _thread_db_dtv_dtv, @object
2763 .size _thread_db_dtv_dtv, 12
2764 _thread_db_dtv_dtv:
2765 .long 128
2766 .long 134217727
2767 .long 0
2768 .globl _thread_db_link_map_l_tls_offset
2769 .align 8
2770 .type _thread_db_link_map_l_tls_offset, @object
2771 .size _thread_db_link_map_l_tls_offset, 12
2772 _thread_db_link_map_l_tls_offset:
2773 .long 64
2774 .long 1
2775 .long 1112
2776 .globl _thread_db_link_map_l_tls_modid
2777 .align 8
2778 .type _thread_db_link_map_l_tls_modid, @object
2779 .size _thread_db_link_map_l_tls_modid, 12
2780 _thread_db_link_map_l_tls_modid:
2781 .long 64
2782 .long 1
2783 .long 1120
2784 .globl _thread_db_pthread_key_data_level2_data
2785 .align 8
2786 .type _thread_db_pthread_key_data_level2_data, @object
2787 .size _thread_db_pthread_key_data_level2_data, 12
2788 _thread_db_pthread_key_data_level2_data:
2789 .long 128
2790 .long 32
2791 .long 0
2792 .globl _thread_db_sizeof_pthread_key_data_level2
2793 .section .rodata.cst4
2794 .align 4
2795 .type _thread_db_sizeof_pthread_key_data_level2, @object
2796 .size _thread_db_sizeof_pthread_key_data_level2, 4
2797 _thread_db_sizeof_pthread_key_data_level2:
2798 .long 512
2799 .globl _thread_db___pthread_keys
2800 .section .rodata
2801 .align 8
2802 .type _thread_db___pthread_keys, @object
2803 .size _thread_db___pthread_keys, 12
2804 _thread_db___pthread_keys:
2805 .long 128
2806 .long 1024
2807 .long 0
2808 .globl _thread_db___nptl_initial_report_events
2809 .align 8
2810 .type _thread_db___nptl_initial_report_events, @object
2811 .size _thread_db___nptl_initial_report_events, 12
2812 _thread_db___nptl_initial_report_events:
2813 .long 8
2814 .long 1
2815 .long 0
2816 .globl _thread_db___nptl_nthreads
2817 .align 8
2818 .type _thread_db___nptl_nthreads, @object
2819 .size _thread_db___nptl_nthreads, 12
2820 _thread_db___nptl_nthreads:
2821 .long 32
2822 .long 1
2823 .long 0
2824 .globl _thread_db_td_eventbuf_t_eventdata
2825 .align 8
2826 .type _thread_db_td_eventbuf_t_eventdata, @object
2827 .size _thread_db_td_eventbuf_t_eventdata, 12
2828 _thread_db_td_eventbuf_t_eventdata:
2829 .long 64
2830 .long 1
2831 .long 16
2832 .globl _thread_db_td_eventbuf_t_eventnum
2833 .align 8
2834 .type _thread_db_td_eventbuf_t_eventnum, @object
2835 .size _thread_db_td_eventbuf_t_eventnum, 12
2836 _thread_db_td_eventbuf_t_eventnum:
2837 .long 32
2838 .long 1
2839 .long 8
2840 .globl _thread_db_sizeof_td_eventbuf_t
2841 .section .rodata.cst4
2842 .align 4
2843 .type _thread_db_sizeof_td_eventbuf_t, @object
2844 .size _thread_db_sizeof_td_eventbuf_t, 4
2845 _thread_db_sizeof_td_eventbuf_t:
2846 .long 24
2847 .globl _thread_db_td_thr_events_t_event_bits
2848 .section .rodata
2849 .align 8
2850 .type _thread_db_td_thr_events_t_event_bits, @object
2851 .size _thread_db_td_thr_events_t_event_bits, 12
2852 _thread_db_td_thr_events_t_event_bits:
2853 .long 32
2854 .long 2
2855 .long 0
2856 .globl _thread_db_sizeof_td_thr_events_t
2857 .section .rodata.cst4
2858 .align 4
2859 .type _thread_db_sizeof_td_thr_events_t, @object
2860 .size _thread_db_sizeof_td_thr_events_t, 4
2861 _thread_db_sizeof_td_thr_events_t:
2862 .long 8
2863 .globl _thread_db_list_t_prev
2864 .section .rodata
2865 .align 8
2866 .type _thread_db_list_t_prev, @object
2867 .size _thread_db_list_t_prev, 12
2868 _thread_db_list_t_prev:
2869 .long 64
2870 .long 1
2871 .long 8
2872 .globl _thread_db_dtv_slotinfo_map
2873 .set _thread_db_dtv_slotinfo_map,_thread_db_list_t_prev
2874 .globl _thread_db_dtv_slotinfo_list_next
2875 .set _thread_db_dtv_slotinfo_list_next,_thread_db_list_t_prev
2876 .globl _thread_db_pthread_dtvp
2877 .set _thread_db_pthread_dtvp,_thread_db_list_t_prev
2878 .globl _thread_db_pthread_key_data_data
2879 .set _thread_db_pthread_key_data_data,_thread_db_list_t_prev
2880 .globl _thread_db_pthread_key_struct_destr
2881 .set _thread_db_pthread_key_struct_destr,_thread_db_list_t_prev
2882 .globl _thread_db_list_t_next
2883 .align 8
2884 .type _thread_db_list_t_next, @object
2885 .size _thread_db_list_t_next, 12
2886 _thread_db_list_t_next:
2887 .long 64
2888 .long 1
2889 .long 0
2890 .globl _thread_db_dtv_slotinfo_gen
2891 .set _thread_db_dtv_slotinfo_gen,_thread_db_list_t_next
2892 .globl _thread_db_dtv_slotinfo_list_len
2893 .set _thread_db_dtv_slotinfo_list_len,_thread_db_list_t_next
2894 .globl _thread_db__dl_tls_dtv_slotinfo_list
2895 .set _thread_db__dl_tls_dtv_slotinfo_list,_thread_db_list_t_next
2896 .globl _thread_db_dtv_t_counter
2897 .set _thread_db_dtv_t_counter,_thread_db_list_t_next
2898 .globl _thread_db_dtv_t_pointer_val
2899 .set _thread_db_dtv_t_pointer_val,_thread_db_list_t_next
2900 .globl _thread_db_pthread_key_data_seq
2901 .set _thread_db_pthread_key_data_seq,_thread_db_list_t_next
2902 .globl _thread_db_pthread_key_struct_seq
2903 .set _thread_db_pthread_key_struct_seq,_thread_db_list_t_next
2904 .globl _thread_db___nptl_last_event
2905 .set _thread_db___nptl_last_event,_thread_db_list_t_next
2906 .globl _thread_db_sizeof_list_t
2907 .section .rodata.cst4
2908 .align 4
2909 .type _thread_db_sizeof_list_t, @object
2910 .size _thread_db_sizeof_list_t, 4
2911 _thread_db_sizeof_list_t:
2912 .long 16
2913 .globl _thread_db_sizeof_dtv_slotinfo
2914 .set _thread_db_sizeof_dtv_slotinfo,_thread_db_sizeof_list_t
2915 .globl _thread_db_sizeof_dtv_slotinfo_list
2916 .set _thread_db_sizeof_dtv_slotinfo_list,_thread_db_sizeof_list_t
2917 .globl _thread_db_sizeof_pthread_key_data
2918 .set _thread_db_sizeof_pthread_key_data,_thread_db_sizeof_list_t
2919 .globl _thread_db_sizeof_pthread_key_struct
2920 .set _thread_db_sizeof_pthread_key_struct,_thread_db_sizeof_list_t
2921 .globl _thread_db_pthread_nextevent
2922 .section .rodata
2923 .align 8
2924 .type _thread_db_pthread_nextevent, @object
2925 .size _thread_db_pthread_nextevent, 12
2926 _thread_db_pthread_nextevent:
2927 .long 64
2928 .long 1
2929 .long 1640
2930 .globl _thread_db_pthread_eventbuf_eventmask_event_bits
2931 .align 8
2932 .type _thread_db_pthread_eventbuf_eventmask_event_bits, @object
2933 .size _thread_db_pthread_eventbuf_eventmask_event_bits, 12
2934 _thread_db_pthread_eventbuf_eventmask_event_bits:
2935 .long 32
2936 .long 2
2937 .long 1616
2938 .globl _thread_db_pthread_eventbuf_eventmask
2939 .align 8
2940 .type _thread_db_pthread_eventbuf_eventmask, @object
2941 .size _thread_db_pthread_eventbuf_eventmask, 12
2942 _thread_db_pthread_eventbuf_eventmask:
2943 .long 64
2944 .long 1
2945 .long 1616
2946 .globl _thread_db_pthread_eventbuf
2947 .align 8
2948 .type _thread_db_pthread_eventbuf, @object
2949 .size _thread_db_pthread_eventbuf, 12
2950 _thread_db_pthread_eventbuf:
2951 .long 192
2952 .long 1
2953 .long 1616
2954 .globl _thread_db_pthread_specific
2955 .align 8
2956 .type _thread_db_pthread_specific, @object
2957 .size _thread_db_pthread_specific, 12
2958 _thread_db_pthread_specific:
2959 .long 2048
2960 .long 1
2961 .long 1296
2962 .globl _thread_db_pthread_schedparam_sched_priority
2963 .align 8
2964 .type _thread_db_pthread_schedparam_sched_priority, @object
2965 .size _thread_db_pthread_schedparam_sched_priority, 12
2966 _thread_db_pthread_schedparam_sched_priority:
2967 .long 32
2968 .long 1
2969 .long 1592
2970 .globl _thread_db_pthread_schedpolicy
2971 .align 8
2972 .type _thread_db_pthread_schedpolicy, @object
2973 .size _thread_db_pthread_schedpolicy, 12
2974 _thread_db_pthread_schedpolicy:
2975 .long 32
2976 .long 1
2977 .long 1596
2978 .globl _thread_db_pthread_cancelhandling
2979 .align 8
2980 .type _thread_db_pthread_cancelhandling, @object
2981 .size _thread_db_pthread_cancelhandling, 12
2982 _thread_db_pthread_cancelhandling:
2983 .long 32
2984 .long 1
2985 .long 776
2986 .globl _thread_db_pthread_start_routine
2987 .align 8
2988 .type _thread_db_pthread_start_routine, @object
2989 .size _thread_db_pthread_start_routine, 12
2990 _thread_db_pthread_start_routine:
2991 .long 64
2992 .long 1
2993 .long 1600
2994 .globl _thread_db_pthread_tid
2995 .align 8
2996 .type _thread_db_pthread_tid, @object
2997 .size _thread_db_pthread_tid, 12
2998 _thread_db_pthread_tid:
2999 .long 32
3000 .long 1
3001 .long 720
3002 .globl _thread_db_pthread_report_events
3003 .align 8
3004 .type _thread_db_pthread_report_events, @object
3005 .size _thread_db_pthread_report_events, 12
3006 _thread_db_pthread_report_events:
3007 .long 8
3008 .long 1
3009 .long 1553
3010 .globl _thread_db_pthread_list
3011 .align 8
3012 .type _thread_db_pthread_list, @object
3013 .size _thread_db_pthread_list, 12
3014 _thread_db_pthread_list:
3015 .long 128
3016 .long 1
3017 .long 704
3018 .globl _thread_db_sizeof_pthread
3019 .section .rodata.cst4
3020 .align 4
3021 .type _thread_db_sizeof_pthread, @object
3022 .size _thread_db_sizeof_pthread, 4
3023 _thread_db_sizeof_pthread:
3024 .long 2496
3025 .local in_flight_stack
3026 .comm in_flight_stack,8,8
3027 .section .data.rel.local,"aw",@progbits
3028 .align 16
3029 .type stack_cache, @object
3030 .size stack_cache, 16
3031 stack_cache:
3032 .quad stack_cache
3033 .quad stack_cache
3034 .local stack_cache_actsize
3035 .comm stack_cache_actsize,8,8
3036 .globl __nptl_nthreads
3037 .data
3038 .align 4
3039 .type __nptl_nthreads, @object
3040 .size __nptl_nthreads, 4
3041 __nptl_nthreads:
3042 .long 1
3043 .local __nptl_last_event
3044 .comm __nptl_last_event,8,8
3045 .local __nptl_threads_events
3046 .comm __nptl_threads_events,8,8
3047 .comm __pthread_debug,4,4
3048 .section .rodata
3049 .align 32
3050 .type sigall_set, @object
3051 .size sigall_set, 128
3052 sigall_set:
3053 .quad -1
3054 .quad -1
3055 .quad -1
3056 .quad -1
3057 .quad -1
3058 .quad -1
3059 .quad -1
3060 .quad -1
3061 .quad -1
3062 .quad -1
3063 .quad -1
3064 .quad -1
3065 .quad -1
3066 .quad -1
3067 .quad -1
3068 .quad -1
3069 .weak __call_tls_dtors