clarify the purpose of this project
[nyanglibc.git] / nptl / pt-cleanup.s
blob7811923b0c9d1295434bae24c50b80503d5f63b9
1 .text
2 .p2align 4,,15
3 .globl __pthread_cleanup_upto
4 .type __pthread_cleanup_upto, @function
5 __pthread_cleanup_upto:
6 pushq %r13
7 pushq %r12
8 pushq %rbp
9 pushq %rbx
10 subq $8, %rsp
11 movq %fs:16, %rax
12 movq 1688(%rax), %rbp
13 addq 1680(%rax), %rbp
14 subq %rbp, %rsi
15 #APP
16 # 36 "pt-cleanup.c" 1
17 movq %fs:760,%rbx
18 # 0 "" 2
19 #NO_APP
20 testq %rbx, %rbx
21 je .L4
22 movq %rbx, %rdx
23 movq 48(%rdi), %rax
24 movq %rbx, %rcx
25 #APP
26 # 40 "../sysdeps/x86_64/jmpbuf-unwind.h" 1
27 ror $2*8+1, %rax
28 xor %fs:48, %rax
29 # 0 "" 2
30 #NO_APP
31 subq %rbp, %rdx
32 subq %rbp, %rax
33 cmpq %rax, %rdx
34 jnb .L3
35 cmpq %rdx, %rsi
36 movq %rsi, %r12
37 movq %rdi, %r13
38 jb .L5
39 jmp .L4
40 .p2align 4,,10
41 .p2align 3
42 .L12:
43 movq %rbx, %rdx
44 movq 48(%r13), %rax
45 movq %rbx, %rcx
46 #APP
47 # 40 "../sysdeps/x86_64/jmpbuf-unwind.h" 1
48 ror $2*8+1, %rax
49 xor %fs:48, %rax
50 # 0 "" 2
51 #NO_APP
52 subq %rbp, %rdx
53 subq %rbp, %rax
54 cmpq %rax, %rdx
55 jnb .L3
56 cmpq %r12, %rdx
57 jbe .L4
58 .L5:
59 movq 8(%rbx), %rdi
60 call *(%rbx)
61 movq 24(%rbx), %rbx
62 testq %rbx, %rbx
63 jne .L12
64 .L4:
65 xorl %ecx, %ecx
66 .L3:
67 #APP
68 # 60 "pt-cleanup.c" 1
69 movq %rcx,%fs:760
70 # 0 "" 2
71 #NO_APP
72 addq $8, %rsp
73 popq %rbx
74 popq %rbp
75 popq %r12
76 popq %r13
77 ret
78 .size __pthread_cleanup_upto, .-__pthread_cleanup_upto