clarify the purpose of this project
[nyanglibc.git] / debug / backtracesymsfd.s
blobb1f7a76ff0c168082883d81c552f4c41f83da107
1 .text
2 .section .rodata.str1.1,"aMS",@progbits,1
3 .LC0:
4 .string "+0x"
5 .LC1:
6 .string "-0x"
7 .LC2:
8 .string ")"
9 .LC3:
10 .string "[0x"
11 .LC4:
12 .string "]\n"
13 .LC5:
14 .string "("
15 .text
16 .p2align 4,,15
17 .globl __backtrace_symbols_fd
18 .hidden __backtrace_symbols_fd
19 .type __backtrace_symbols_fd, @function
20 __backtrace_symbols_fd:
21 testl %esi, %esi
22 jle .L15
23 pushq %r15
24 pushq %r14
25 leaq .LC4(%rip), %r15
26 pushq %r13
27 pushq %r12
28 pushq %rbp
29 pushq %rbx
30 movq %rdi, %rbx
31 subq $312, %rsp
32 leaq 96(%rsp), %r14
33 movl %edx, 44(%rsp)
34 leaq 16(%r14), %rax
35 movq %rax, (%rsp)
36 leal -1(%rsi), %eax
37 leaq 8(%rdi,%rax,8), %rax
38 movq %rax, 8(%rsp)
39 leaq 88(%rsp), %rax
40 movq %rax, 24(%rsp)
41 leaq 128(%rsp), %rax
42 movq %rax, 16(%rsp)
43 leaq 160(%rsp), %rax
44 movq %rax, 32(%rsp)
45 leaq 128(%rsp), %rax
46 movq %rax, 48(%rsp)
47 .p2align 4,,10
48 .p2align 3
49 .L8:
50 movq 24(%rsp), %rdx
51 movq 16(%rsp), %rsi
52 xorl %ecx, %ecx
53 movq (%rbx), %rdi
54 call _dl_addr
55 testl %eax, %eax
56 je .L12
57 movq 128(%rsp), %rdi
58 testq %rdi, %rdi
59 je .L12
60 cmpb $0, (%rdi)
61 je .L12
62 movq %rdi, 160(%rsp)
63 call strlen
64 movq 144(%rsp), %rdi
65 movq %rax, 168(%rsp)
66 testq %rdi, %rdi
67 je .L19
68 leaq .LC5(%rip), %rax
69 movq %rdi, 192(%rsp)
70 movq $1, 184(%rsp)
71 movl $8, %r12d
72 movl $7, %ebp
73 movl $9, %r13d
74 movq %rax, 176(%rsp)
75 call strlen
76 movq 152(%rsp), %rdi
77 movq %rax, 200(%rsp)
78 movl $6, %r8d
79 movq $5, 64(%rsp)
80 movq $4, 56(%rsp)
81 movl $3, %eax
82 .L9:
83 movq (%rbx), %rdx
84 movq %rax, %rcx
85 salq $4, %rcx
86 cmpq %rdi, %rdx
87 jnb .L20
88 leaq .LC1(%rip), %rsi
89 subq %rdx, %rdi
90 movq %rsi, 160(%rsp,%rcx)
91 .L7:
92 movq 48(%rsp), %rsi
93 salq $4, %rax
94 xorl %ecx, %ecx
95 movl $16, %edx
96 movq %r8, 72(%rsp)
97 movq $3, 168(%rsp,%rax)
98 call _itoa_word
99 movq 56(%rsp), %rdx
100 movq 48(%rsp), %rcx
101 movq 72(%rsp), %r8
102 salq $4, %rdx
103 subq %rax, %rcx
104 movq %rax, 160(%rsp,%rdx)
105 movq 64(%rsp), %rax
106 movq %rcx, 168(%rsp,%rdx)
107 leaq .LC2(%rip), %rcx
108 salq $4, %rax
109 movq %rcx, 160(%rsp,%rax)
110 movq $1, 168(%rsp,%rax)
111 jmp .L3
112 .p2align 4,,10
113 .p2align 3
114 .L12:
115 movl $2, %r12d
116 movl $1, %ebp
117 movl $3, %r13d
118 xorl %r8d, %r8d
119 .L3:
120 movq (%rbx), %rdi
121 movq %r8, %rax
122 leaq .LC3(%rip), %rdx
123 salq $4, %rax
124 leaq 16(%r14), %rsi
125 xorl %ecx, %ecx
126 movq %rdx, 160(%rsp,%rax)
127 movl $16, %edx
128 movq $3, 168(%rsp,%rax)
129 call _itoa_word
130 movq (%rsp), %rcx
131 movq 32(%rsp), %rsi
132 salq $4, %rbp
133 movl 44(%rsp), %edi
134 salq $4, %r12
135 movl %r13d, %edx
136 movq %rax, 160(%rsp,%rbp)
137 addq $8, %rbx
138 movq %r15, 160(%rsp,%r12)
139 subq %rax, %rcx
140 movq %rcx, 168(%rsp,%rbp)
141 movq $2, 168(%rsp,%r12)
142 call __writev
143 cmpq 8(%rsp), %rbx
144 jne .L8
145 addq $312, %rsp
146 popq %rbx
147 popq %rbp
148 popq %r12
149 popq %r13
150 popq %r14
151 popq %r15
153 .p2align 4,,10
154 .p2align 3
155 .L20:
156 leaq .LC0(%rip), %rsi
157 subq %rdi, %rdx
158 movq %rdx, %rdi
159 movq %rsi, 160(%rsp,%rcx)
160 jmp .L7
161 .p2align 4,,10
162 .p2align 3
163 .L19:
164 movq 88(%rsp), %rax
165 movq (%rax), %rdi
166 testq %rdi, %rdi
167 je .L21
168 leaq .LC5(%rip), %rax
169 movq $1, 184(%rsp)
170 movq %rdi, 152(%rsp)
171 movl $7, %r12d
172 movl $6, %ebp
173 movl $8, %r13d
174 movq %rax, 176(%rsp)
175 movl $5, %r8d
176 movq $4, 64(%rsp)
177 movq $3, 56(%rsp)
178 movl $2, %eax
179 jmp .L9
180 .p2align 4,,10
181 .p2align 3
182 .L21:
183 movl $3, %r12d
184 movl $2, %ebp
185 movl $4, %r13d
186 movl $1, %r8d
187 jmp .L3
188 .p2align 4,,10
189 .p2align 3
190 .L15:
191 rep ret
192 .size __backtrace_symbols_fd, .-__backtrace_symbols_fd
193 .weak backtrace_symbols_fd
194 .set backtrace_symbols_fd,__backtrace_symbols_fd
195 .hidden __writev
196 .hidden _itoa_word
197 .hidden strlen
198 .hidden _dl_addr