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