clarify the purpose of this project
[nyanglibc.git] / debug / backtracesyms.s
blobee02ae12cdc2b8806e0fa1f42aa5bb23b832d9eb
1 .text
2 .section .rodata.str1.1,"aMS",@progbits,1
3 .LC0:
4 .string ""
5 .LC1:
6 .string "%s(%s) [%p]"
7 .LC2:
8 .string "%s(%s%c%#tx) [%p]"
9 .LC3:
10 .string "[%p]"
11 .LC4:
12 .string "backtracesyms.c"
13 .section .rodata.str1.8,"aMS",@progbits,1
14 .align 8
15 .LC5:
16 .string "last <= (char *) result + size * sizeof (char *) + total"
17 .text
18 .p2align 4,,15
19 .globl __backtrace_symbols
20 .type __backtrace_symbols, @function
21 __backtrace_symbols:
22 pushq %rbp
23 movslq %esi, %rax
24 movq %rax, %rdx
25 movq %rsp, %rbp
26 pushq %r15
27 pushq %r14
28 pushq %r13
29 pushq %r12
30 salq $5, %rdx
31 pushq %rbx
32 addq $16, %rdx
33 subq $88, %rsp
34 movq %rdi, -80(%rbp)
35 subq %rdx, %rsp
36 leaq 18(,%rax,4), %rdx
37 salq $3, %rax
38 movq %rsp, %rbx
39 movq %rax, -88(%rbp)
40 andq $-16, %rdx
41 subq %rdx, %rsp
42 testl %esi, %esi
43 movq %rsp, %r15
44 movq %r15, -104(%rbp)
45 jle .L2
46 leal -1(%rsi), %eax
47 movq %rbx, %r14
48 movq %rbx, -96(%rbp)
49 movq %rdi, %r13
50 movq %r15, %rbx
51 xorl %r12d, %r12d
52 movq %rax, -112(%rbp)
53 leaq 8(%rdi,%rax,8), %rax
54 movq %rax, -72(%rbp)
55 leaq -56(%rbp), %rax
56 movq %rax, %r15
57 jmp .L6
58 .p2align 4,,10
59 .p2align 3
60 .L37:
61 movq (%r14), %rdi
62 testq %rdi, %rdi
63 je .L3
64 cmpb $0, (%rdi)
65 je .L3
66 call strlen
67 movq 16(%r14), %rdi
68 movq %rax, %rdx
69 xorl %eax, %eax
70 testq %rdi, %rdi
71 je .L4
72 movq %rdx, -120(%rbp)
73 call strlen
74 movq -120(%rbp), %rdx
75 .L4:
76 leaq 43(%r12,%rdx), %r12
77 addq %rax, %r12
78 movq -56(%rbp), %rax
79 movq (%rax), %rax
80 movq %rax, 8(%r14)
81 .p2align 4,,10
82 .p2align 3
83 .L5:
84 addq $8, %r13
85 addq $32, %r14
86 addq $4, %rbx
87 cmpq -72(%rbp), %r13
88 je .L36
89 .L6:
90 movq 0(%r13), %rdi
91 xorl %ecx, %ecx
92 movq %r15, %rdx
93 movq %r14, %rsi
94 call _dl_addr
95 testl %eax, %eax
96 movl %eax, (%rbx)
97 jne .L37
98 .L3:
99 addq $21, %r12
100 jmp .L5
101 .p2align 4,,10
102 .p2align 3
103 .L36:
104 movq -88(%rbp), %rax
105 movq -96(%rbp), %rbx
106 leaq (%r12,%rax), %r13
107 movq %r13, %rdi
108 call malloc@PLT
109 testq %rax, %rax
110 movq %rax, %r14
111 je .L1
112 movq -88(%rbp), %r12
113 movq -112(%rbp), %rax
114 xorl %r15d, %r15d
115 movq %r13, -88(%rbp)
116 addq %r14, %r12
117 addq $1, %rax
118 movq %r12, %r13
119 movq -104(%rbp), %r12
120 movq %rax, -72(%rbp)
121 .p2align 4,,10
122 .p2align 3
123 .L15:
124 movl (%r12,%r15,4), %ecx
125 movq -80(%rbp), %rax
126 movq %r13, (%r14,%r15,8)
127 testl %ecx, %ecx
128 movq (%rax,%r15,8), %rdx
129 je .L8
130 movq (%rbx), %rax
131 testq %rax, %rax
132 je .L8
133 cmpb $0, (%rax)
134 je .L8
135 movq 16(%rbx), %rcx
136 testq %rcx, %rcx
137 je .L38
138 movq 24(%rbx), %r9
139 .L10:
140 cmpq %rdx, %r9
141 jbe .L39
142 subq %rdx, %r9
143 movl $45, %r8d
144 .L13:
145 leaq .LC0(%rip), %rsi
146 testq %rcx, %rcx
147 movq %r13, %rdi
148 cmove %rsi, %rcx
149 subq $8, %rsp
150 leaq .LC2(%rip), %rsi
151 pushq %rdx
152 movq %rax, %rdx
153 xorl %eax, %eax
154 addq $1, %r15
155 addq $32, %rbx
156 call sprintf
157 addl $1, %eax
158 cltq
159 addq %rax, %r13
160 cmpq %r15, -72(%rbp)
161 popq %rax
162 popq %rdx
163 jne .L15
164 .L41:
165 movq %r13, %r12
166 movq -88(%rbp), %r13
167 leaq (%r14,%r13), %rax
168 cmpq %rax, %r12
169 ja .L40
170 .L1:
171 leaq -40(%rbp), %rsp
172 movq %r14, %rax
173 popq %rbx
174 popq %r12
175 popq %r13
176 popq %r14
177 popq %r15
178 popq %rbp
180 .p2align 4,,10
181 .p2align 3
182 .L8:
183 leaq .LC3(%rip), %rsi
184 movq %r13, %rdi
185 xorl %eax, %eax
186 call sprintf
187 addl $1, %eax
188 cltq
189 addq %rax, %r13
190 .L11:
191 addq $1, %r15
192 addq $32, %rbx
193 cmpq %r15, -72(%rbp)
194 jne .L15
195 jmp .L41
196 .p2align 4,,10
197 .p2align 3
198 .L39:
199 movq %rdx, %rsi
200 movl $43, %r8d
201 subq %r9, %rsi
202 movq %rsi, %r9
203 jmp .L13
204 .p2align 4,,10
205 .p2align 3
206 .L38:
207 movq 8(%rbx), %r9
208 testq %r9, %r9
209 movq %r9, 24(%rbx)
210 jne .L10
211 leaq .LC0(%rip), %rcx
212 leaq .LC1(%rip), %rsi
213 movq %rdx, %r8
214 movq %r13, %rdi
215 movq %rax, %rdx
216 xorl %eax, %eax
217 call sprintf
218 addl $1, %eax
219 cltq
220 addq %rax, %r13
221 jmp .L11
222 .p2align 4,,10
223 .p2align 3
224 .L2:
225 movq -88(%rbp), %rdi
226 call malloc@PLT
227 movq %rax, %r14
228 jmp .L1
229 .L40:
230 leaq __PRETTY_FUNCTION__.9984(%rip), %rcx
231 leaq .LC4(%rip), %rsi
232 leaq .LC5(%rip), %rdi
233 movl $115, %edx
234 call __assert_fail
235 .size __backtrace_symbols, .-__backtrace_symbols
236 .weak backtrace_symbols
237 .set backtrace_symbols,__backtrace_symbols
238 .section .rodata.str1.16,"aMS",@progbits,1
239 .align 16
240 .type __PRETTY_FUNCTION__.9984, @object
241 .size __PRETTY_FUNCTION__.9984, 20
242 __PRETTY_FUNCTION__.9984:
243 .string "__backtrace_symbols"
244 .hidden __assert_fail
245 .hidden sprintf
246 .hidden _dl_addr
247 .hidden strlen