unwind_registers.S revision 1.10 1 //===------------------------- unwind_registers.S -------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //
9 // Abstracts accessing local vs remote address spaces.
10 //
11 //===----------------------------------------------------------------------===//
12 #include <machine/asm.h>
13
14 #ifdef __i386__
15 .hidden _ZN7_Unwind13Registers_x86C1Ev
16 ENTRY(_ZN7_Unwind13Registers_x86C1Ev)
17 pushl %eax
18 movl 8(%esp), %eax /* Load this */
19 /* Save all registers except EAX, EIP and ESP */
20 /* Skip ECX */
21 /* Skip EDX */
22 movl %ebx, 12(%eax)
23 movl %ebp, 20(%eax)
24 movl %esi, 24(%eax)
25 movl %edi, 28(%eax)
26
27 leal 8(%esp), %edx /* Compute ESP from the call site */
28 movl %edx, 16(%eax) /* ...and store it as ESP */
29 movl 4(%esp), %edx /* Load return address */
30 movl %edx, 32(%eax) /* ...and store it as EIP */
31 popl %edx /* Take old EAX from stack */
32 movl %edx, 0(%eax) /* ...and store it */ // XXX skip
33 ret
34
35 .hidden _ZNK7_Unwind13Registers_x866jumptoEv
36 ENTRY(_ZNK7_Unwind13Registers_x866jumptoEv)
37 movl 4(%esp), %eax /* Load this */
38 movl 16(%eax), %edx /* Load new stack pointer */
39 subl $4, %edx /* Reserve space on new stack for EIP */
40 movl 32(%eax), %ebx /* Load new EIP */
41 movl %ebx, 0(%edx) /* ...and save it on the new stack */
42 pushl %edx /* Save new stack pointer on old stack */
43 /* New stack is prepared, now restore all registers except ESP */
44 /* EAX is the index register and must be restored last */
45 movl 4(%eax), %ecx
46 movl 8(%eax), %edx
47 movl 12(%eax), %ebx
48 movl 20(%eax), %ebp
49 /* 16 is ESP */
50 movl 24(%eax), %esi
51 movl 28(%eax), %edi
52 movl 0(%eax), %eax
53 /* Now load new stack pointer pushed on the old stack earlier */
54 popl %esp
55 /* Return address is already on the new stack. */
56 ret
57 #endif
58
59 #ifdef __x86_64
60 .hidden _ZN7_Unwind16Registers_x86_64C1Ev
61 ENTRY(_ZN7_Unwind16Registers_x86_64C1Ev)
62 /* RDI == this */
63 /* Skip RAX */
64 /* Skip RDX */
65 /* Skip RCX */
66 movq %rbx, 24(%rdi)
67 /* Skip RSI */
68 /* Skip RDI */
69 movq %rbp, 48(%rdi)
70 leaq 8(%rsp), %rax
71 movq %rax, 56(%rdi)
72 /* Skip R8 */
73 /* Skip R9 */
74 /* Skip R10 */
75 /* Skip R11 */
76 movq %r12, 96(%rdi)
77 movq %r13, 104(%rdi)
78 movq %r14, 112(%rdi)
79 movq %r15, 120(%rdi)
80 movq (%rsp), %rax
81 movq %rax, 128(%rdi)
82 ret
83
84 .hidden _ZNK7_Unwind16Registers_x86_646jumptoEv
85 ENTRY(_ZNK7_Unwind16Registers_x86_646jumptoEv)
86 /* RDI == this */
87 movq 56(%rdi), %rax
88 subq $8, %rax /* Reserve space on new stack for RIP */
89 movq 128(%rdi), %rbx /* Load new RIP */
90 movq %rbx, 0(%rax) /* ...and save it on the new stack */
91 pushq %rax /* Save new stack pointer on old stack */
92 /* New stack is prepared, now restore all registers */
93 movq 0(%rdi), %rax
94 movq 8(%rdi), %rdx
95 movq 16(%rdi), %rcx
96 movq 24(%rdi), %rbx
97 movq 32(%rdi), %rsi
98 /* RDI restored later as it is still used as index register */
99 movq 48(%rdi), %rbp
100 /* RSP is restored later */
101 movq 64(%rdi), %r8
102 movq 72(%rdi), %r9
103 movq 80(%rdi), %r10
104 movq 88(%rdi), %r11
105 movq 96(%rdi), %r12
106 movq 104(%rdi), %r13
107 movq 112(%rdi), %r14
108 movq 120(%rdi), %r15
109 movq 40(%rdi), %rdi
110 /* Now load new stack pointer pushed on the old stack earlier */
111 popq %rsp
112 /* Return address is already on the new stack. */
113 ret
114 #endif
115
116 #ifdef __powerpc__
117 .hidden _ZN7_Unwind15Registers_ppc32C1Ev
118 ENTRY(_ZN7_Unwind15Registers_ppc32C1Ev)
119 /* TODO: skip non-callee-safe registers */
120 stw %r0, 0(%r3)
121 stw %r1, 4(%r3)
122 stw %r2, 8(%r3)
123 stw %r3, 12(%r3)
124 stw %r4, 16(%r3)
125 stw %r5, 20(%r3)
126 stw %r6, 24(%r3)
127 stw %r7, 28(%r3)
128 stw %r8, 32(%r3)
129 stw %r9, 36(%r3)
130 stw %r10, 40(%r3)
131 stw %r11, 44(%r3)
132 stw %r12, 48(%r3)
133 stw %r13, 52(%r3)
134 stw %r14, 56(%r3)
135 stw %r15, 60(%r3)
136 stw %r16, 64(%r3)
137 stw %r17, 68(%r3)
138 stw %r18, 72(%r3)
139 stw %r19, 76(%r3)
140 stw %r20, 80(%r3)
141 stw %r21, 84(%r3)
142 stw %r22, 88(%r3)
143 stw %r23, 92(%r3)
144 stw %r24, 96(%r3)
145 stw %r25,100(%r3)
146 stw %r26,104(%r3)
147 stw %r27,108(%r3)
148 stw %r28,112(%r3)
149 stw %r29,116(%r3)
150 stw %r30,120(%r3)
151 stw %r31,124(%r3)
152 mflr %r0
153 stw %r0, 136(%r3) /* SRR0 */
154 mfcr %r0
155 stw %r0, 132(%r3) /* CR */
156
157 stfd %f0, 144(%r3)
158 stfd %f1, 152(%r3)
159 stfd %f2, 160(%r3)
160 stfd %f3, 168(%r3)
161 stfd %f4, 176(%r3)
162 stfd %f5, 184(%r3)
163 stfd %f6, 192(%r3)
164 stfd %f7, 200(%r3)
165 stfd %f8, 208(%r3)
166 stfd %f9, 216(%r3)
167 stfd %f10, 224(%r3)
168 stfd %f11, 232(%r3)
169 stfd %f12, 240(%r3)
170 stfd %f13, 248(%r3)
171 stfd %f14, 256(%r3)
172 stfd %f15, 264(%r3)
173 stfd %f16, 272(%r3)
174 stfd %f17, 280(%r3)
175 stfd %f18, 288(%r3)
176 stfd %f19, 296(%r3)
177 stfd %f20, 304(%r3)
178 stfd %f21, 312(%r3)
179 stfd %f22, 320(%r3)
180 stfd %f23, 328(%r3)
181 stfd %f24, 336(%r3)
182 stfd %f25, 344(%r3)
183 stfd %f26, 352(%r3)
184 stfd %f27, 360(%r3)
185 stfd %f28, 368(%r3)
186 stfd %f29, 376(%r3)
187 stfd %f30, 384(%r3)
188 stfd %f31, 392(%r3)
189
190 /* LR is undefined */
191 blr
192
193 .hidden _ZNK7_Unwind15Registers_ppc326jumptoEv
194 ENTRY(_ZNK7_Unwind15Registers_ppc326jumptoEv)
195 lfd %f0, 144(%r3)
196 lfd %f1, 152(%r3)
197 lfd %f2, 160(%r3)
198 lfd %f3, 168(%r3)
199 lfd %f4, 176(%r3)
200 lfd %f5, 184(%r3)
201 lfd %f6, 192(%r3)
202 lfd %f7, 200(%r3)
203 lfd %f8, 208(%r3)
204 lfd %f9, 216(%r3)
205 lfd %f10, 224(%r3)
206 lfd %f11, 232(%r3)
207 lfd %f12, 240(%r3)
208 lfd %f13, 248(%r3)
209 lfd %f14, 256(%r3)
210 lfd %f15, 264(%r3)
211 lfd %f16, 272(%r3)
212 lfd %f17, 280(%r3)
213 lfd %f18, 288(%r3)
214 lfd %f19, 296(%r3)
215 lfd %f20, 304(%r3)
216 lfd %f21, 312(%r3)
217 lfd %f22, 320(%r3)
218 lfd %f23, 328(%r3)
219 lfd %f24, 336(%r3)
220 lfd %f25, 344(%r3)
221 lfd %f26, 352(%r3)
222 lfd %f27, 360(%r3)
223 lfd %f28, 368(%r3)
224 lfd %f29, 376(%r3)
225 lfd %f30, 384(%r3)
226 lfd %f31, 392(%r3)
227
228 lwz %r2, 8(%r3)
229 /* skip r3 for now */
230 lwz %r4, 16(%r3)
231 lwz %r5, 20(%r3)
232 lwz %r6, 24(%r3)
233 lwz %r7, 28(%r3)
234 lwz %r8, 32(%r3)
235 lwz %r9, 36(%r3)
236 lwz %r10, 40(%r3)
237 lwz %r11, 44(%r3)
238 lwz %r12, 48(%r3)
239 lwz %r13, 52(%r3)
240 lwz %r14, 56(%r3)
241 lwz %r15, 60(%r3)
242 lwz %r16, 64(%r3)
243 lwz %r17, 68(%r3)
244 lwz %r18, 72(%r3)
245 lwz %r19, 76(%r3)
246 lwz %r20, 80(%r3)
247 lwz %r21, 84(%r3)
248 lwz %r22, 88(%r3)
249 lwz %r23, 92(%r3)
250 lwz %r24, 96(%r3)
251 lwz %r25,100(%r3)
252 lwz %r26,104(%r3)
253 lwz %r27,108(%r3)
254 lwz %r28,112(%r3)
255 lwz %r29,116(%r3)
256 lwz %r30,120(%r3)
257 lwz %r31,124(%r3)
258
259 lwz %r0, 128(%r3) /* LR */
260 mtlr %r0
261 lwz %r0, 132(%r3) /* CR */
262 mtcr %r0
263 lwz %r0, 136(%r3) /* SRR0 */
264 mtctr %r0
265
266 lwz %r0, 0(%r3) /* do r0 now */
267 lwz %r1, 4(%r3) /* do sp now */
268 lwz %r3, 12(%r3) /* do r3 last */
269 bctr
270 #endif
271
272 #if defined(__arm__) && !defined(__ARM_EABI__)
273 .hidden _ZN7_Unwind15Registers_arm32C1Ev
274 ENTRY(_ZN7_Unwind15Registers_arm32C1Ev)
275 stmia r0, {r0-r14}
276
277 str lr, [r0, #60] /* PC */
278 mrs r1, cpsr
279 str r1, [r0, #64] /* CPSR */
280
281 RET
282 END(_ZN7_Unwind15Registers_arm32C1Ev)
283
284 .hidden _ZNK7_Unwind15Registers_arm326jumptoEv
285 ENTRY(_ZNK7_Unwind15Registers_arm326jumptoEv)
286 ldr r1, [r0, #64]
287 msr cpsr_sxc, r1
288 ldmia r0, {r0-r15}
289 END(_ZNK7_Unwind15Registers_arm326jumptoEv)
290 #endif
291
292 #if defined(__vax__)
293 .hidden _ZN7_Unwind13Registers_vaxC1Ev
294 ENTRY(_ZN7_Unwind13Registers_vaxC1Ev, R0)
295 subl2 $4, %sp
296 movl 4(%ap), %r0
297 movl %r1, 4(%r0)
298 movl %r2, 8(%r0)
299 movl %r3, 12(%r0)
300 movl %r4, 16(%r0)
301 movl %r5, 20(%r0)
302 movl %r6, 24(%r0)
303 movl %r7, 28(%r0)
304 movl %r8, 32(%r0)
305 movl %r9, 36(%r0)
306 movl %r10, 40(%r0)
307 movl %r11, 44(%r0)
308 movl 8(%fp), 48(%r0)
309 movl 12(%fp), 52(%r0)
310 addl3 $36, %sp, 56(%r0)
311 /* Return PC */
312 movl 16(%fp), 60(%r0)
313 /* Load saved value of r0 as r1 */
314 movl 20(%fp), 0(%r0)
315 /* Saved PSW */
316 movl 4(%fp), 64(%r0)
317 ret
318 END(_ZN7_Unwind13Registers_vaxC1Ev)
319
320 .hidden _ZNK7_Unwind13Registers_vax6jumptoEv
321 ENTRY(_ZNK7_Unwind13Registers_vax6jumptoEv, 0)
322 subl2 $4, %sp
323 movl 4(%ap), %r0
324 movl 4(%r0), %r1
325 movl 8(%r0), %r2
326 movl 12(%r0), %r3
327 movl 16(%r0), %r4
328 movl 20(%r0), %r5
329 movl 24(%r0), %r6
330 movl 28(%r0), %r7
331 movl 32(%r0), %r8
332 movl 36(%r0), %r9
333 movl 40(%r0), %r10
334 movl 44(%r0), %r11
335 movl 48(%r0), %r12
336 movl 52(%r0), %r13
337 movl 56(%r0), %r14
338 movl 60(%r0), -(%sp)
339 movl 0(%r0), %r0
340 /* XXX restore PSW */
341 rsb
342 END(_ZNK7_Unwind13Registers_vax6jumptoEv)
343 #endif
344
345 #if defined(__m68k__)
346 ENTRY(_ZN7_Unwind14Registers_M68KC1Ev)
347 move.l 4(%sp), %a0
348 movem.l %d0-%d7/%a0-%a7, (%a0)
349 fmovem %fp0-%fp7, 72(%a0)
350 move.l 0(%sp), %a1
351 move.l %a1, 64(%a0)
352 addq.l #4, 60(%a0)
353 rts
354 END(_ZN7_Unwind14Registers_M68KC1Ev)
355
356 ENTRY(_ZNK7_Unwind14Registers_M68K6jumptoEv)
357 move.l 4(%sp), %a0
358 subq.l #4, 60(%a0)
359 move.l 64(%a0), %a1
360 move.l 60(%a0), %a2
361 move.l %a1, (%a2)
362 fmovem 72(%a0), %fp0-%fp7
363 movem.l (%a0), %d0-%d7/%a0-%a7
364 rts
365 END(_ZNK7_Unwind14Registers_M68K6jumptoEv)
366 #endif
367
368 #if defined(__sh3__)
369 .hidden _ZN7_Unwind13Registers_SH3C1Ev
370 ENTRY(_ZN7_Unwind13Registers_SH3C1Ev)
371 add #64, r4
372 mov.l r8, @-r15
373 sts.l pr, @-r15
374 mov.l @r15+, r8
375 mov.l r8, @r4
376 mov.l @r15+, r8
377
378 mov.l r15, @-r4
379 mov.l r14, @-r4
380 mov.l r13, @-r4
381 mov.l r12, @-r4
382 mov.l r11, @-r4
383 mov.l r10, @-r4
384 mov.l r9, @-r4
385 mov.l r8, @-r4
386 mov.l r7, @-r4
387 mov.l r6, @-r4
388 mov.l r5, @-r4
389 add #-4, r4
390 mov.l r3, @-r4
391 mov.l r2, @-r4
392 mov.l r1, @-r4
393 mov.l r0, @-r4
394 rts
395 mov.l r4, @(16,r4)
396 SET_ENTRY_SIZE(_ZN7_Unwind13Registers_SH3C1Ev)
397
398 .hidden _ZNK7_Unwind13Registers_SH36jumptoEv
399 ENTRY(_ZNK7_Unwind13Registers_SH36jumptoEv)
400 mov r4, r0
401 add #4, r0
402 mov.l @r0+, r1
403 mov.l @r0+, r2
404 mov.l @r0+, r3
405 mov.l @r0+, r4
406 mov.l @r0+, r5
407 mov.l @r0+, r6
408 mov.l @r0+, r7
409 mov.l @r0+, r8
410 mov.l @r0+, r9
411 mov.l @r0+, r10
412 mov.l @r0+, r11
413 mov.l @r0+, r12
414 mov.l @r0+, r13
415 mov.l @(12, r0), r14
416 lds r14, pr
417 mov.l @r0+, r14
418 mov.l @r0+, r15
419 mov.l @r0, r0
420 jmp @r0
421 nop
422 SET_ENTRY_SIZE(_ZNK7_Unwind13Registers_SH36jumptoEv)
423 #endif
424
425 #if defined(__sparc64__)
426 #include <machine/trap.h>
427 .register %g2, #ignore
428 .register %g3, #ignore
429 .register %g6, #ignore
430 .register %g7, #ignore
431 .hidden _ZN7_Unwind17Registers_SPARC64C1Ev
432 ENTRY(_ZN7_Unwind17Registers_SPARC64C1Ev)
433 t ST_FLUSHWIN
434 stx %g0, [%o0 + 0]
435 stx %g1, [%o0 + 8]
436 stx %g2, [%o0 + 16]
437 stx %g3, [%o0 + 24]
438 stx %g4, [%o0 + 32]
439 stx %g5, [%o0 + 40]
440 stx %g6, [%o0 + 48]
441 stx %g7, [%o0 + 56]
442 stx %o0, [%o0 + 64]
443 stx %o1, [%o0 + 72]
444 stx %o2, [%o0 + 80]
445 stx %o3, [%o0 + 88]
446 stx %o4, [%o0 + 96]
447 stx %o5, [%o0 + 104]
448 stx %o6, [%o0 + 112]
449 stx %o7, [%o0 + 120]
450 stx %l0, [%o0 + 128]
451 stx %l1, [%o0 + 136]
452 stx %l2, [%o0 + 144]
453 stx %l3, [%o0 + 152]
454 stx %l4, [%o0 + 160]
455 stx %l5, [%o0 + 168]
456 stx %l6, [%o0 + 176]
457 stx %l7, [%o0 + 184]
458 stx %i0, [%o0 + 192]
459 stx %i1, [%o0 + 200]
460 stx %i2, [%o0 + 208]
461 stx %i3, [%o0 + 216]
462 stx %i4, [%o0 + 224]
463 stx %i5, [%o0 + 232]
464 stx %i6, [%o0 + 240]
465 stx %i7, [%o0 + 248]
466 add %o7, 8, %g1
467 retl
468 stx %g1, [%o0 + 256]
469 END(_ZN7_Unwind17Registers_SPARC64C1Ev)
470
471 .hidden _ZNK7_Unwind17Registers_SPARC646jumptoEv
472 ENTRY(_ZNK7_Unwind17Registers_SPARC646jumptoEv)
473 t ST_FLUSHWIN
474 ldx [%o0 + 0], %g0
475 ldx [%o0 + 8], %g1
476 ldx [%o0 + 16], %g2
477 ldx [%o0 + 24], %g3
478 ldx [%o0 + 32], %g4
479 ldx [%o0 + 40], %g5
480 ldx [%o0 + 48], %g6
481 ldx [%o0 + 56], %g7
482 ldx [%o0 + 72], %o1
483 ldx [%o0 + 80], %o2
484 ldx [%o0 + 88], %o3
485 ldx [%o0 + 96], %o4
486 ldx [%o0 + 104], %o5
487 ldx [%o0 + 112], %g1
488 sub %g1, 2047, %o6
489 ldx [%o0 + 120], %o7
490 ldx [%o0 + 128], %l0
491 ldx [%o0 + 136], %l1
492 ldx [%o0 + 144], %l2
493 ldx [%o0 + 152], %l3
494 ldx [%o0 + 160], %l4
495 ldx [%o0 + 168], %l5
496 ldx [%o0 + 176], %l6
497 ldx [%o0 + 184], %l7
498 ldx [%o0 + 192], %i0
499 ldx [%o0 + 200], %i1
500 ldx [%o0 + 208], %i2
501 ldx [%o0 + 216], %i3
502 ldx [%o0 + 224], %i4
503 ldx [%o0 + 232], %i5
504 ldx [%o0 + 240], %i6
505 ldx [%o0 + 248], %i7
506 ldx [%o0 + 256], %g1
507 jmpl %g1, %g0
508 ldx [%o0 + 64], %o0
509 END(_ZNK7_Unwind17Registers_SPARC646jumptoEv)
510 #elif defined(__sparc__)
511 #include <machine/trap.h>
512
513 .hidden _ZN7_Unwind15Registers_SPARCC1Ev
514 ENTRY(_ZN7_Unwind15Registers_SPARCC1Ev)
515 t ST_FLUSHWIN
516 st %g0, [%o0 + 0]
517 st %g1, [%o0 + 4]
518 st %g2, [%o0 + 8]
519 st %g3, [%o0 + 12]
520 st %g4, [%o0 + 16]
521 st %g5, [%o0 + 20]
522 st %g6, [%o0 + 24]
523 st %g7, [%o0 + 28]
524 st %o0, [%o0 + 32]
525 st %o1, [%o0 + 36]
526 st %o2, [%o0 + 40]
527 st %o3, [%o0 + 44]
528 st %o4, [%o0 + 48]
529 st %o5, [%o0 + 52]
530 st %o6, [%o0 + 56]
531 st %o7, [%o0 + 60]
532 st %l0, [%o0 + 64]
533 st %l1, [%o0 + 68]
534 st %l2, [%o0 + 72]
535 st %l3, [%o0 + 76]
536 st %l4, [%o0 + 80]
537 st %l5, [%o0 + 84]
538 st %l6, [%o0 + 88]
539 st %l7, [%o0 + 92]
540 st %i0, [%o0 + 96]
541 st %i1, [%o0 + 100]
542 st %i2, [%o0 + 104]
543 st %i3, [%o0 + 108]
544 st %i4, [%o0 + 112]
545 st %i5, [%o0 + 116]
546 st %i6, [%o0 + 120]
547 st %i7, [%o0 + 124 ]
548 add %o7, 8, %g1
549 retl
550 st %g1, [%o0 + 128]
551 END(_ZN7_Unwind15Registers_SPARCC1Ev)
552
553 .hidden _ZNK7_Unwind15Registers_SPARC6jumptoEv
554 ENTRY(_ZNK7_Unwind15Registers_SPARC6jumptoEv)
555 t ST_FLUSHWIN
556 ld [%o0 + 0], %g0
557 ld [%o0 + 4], %g1
558 ld [%o0 + 8], %g2
559 ld [%o0 + 12], %g3
560 ld [%o0 + 16], %g4
561 ld [%o0 + 20], %g5
562 ld [%o0 + 24], %g6
563 ld [%o0 + 28], %g7
564 ld [%o0 + 36], %o1
565 ld [%o0 + 40], %o2
566 ld [%o0 + 44], %o3
567 ld [%o0 + 48], %o4
568 ld [%o0 + 52], %o5
569 ld [%o0 + 56], %o6
570 ld [%o0 + 60], %o7
571 ld [%o0 + 64], %l0
572 ld [%o0 + 68], %l1
573 ld [%o0 + 72], %l2
574 ld [%o0 + 76], %l3
575 ld [%o0 + 80], %l4
576 ld [%o0 + 84], %l5
577 ld [%o0 + 88], %l6
578 ld [%o0 + 92], %l7
579 ld [%o0 + 96], %i0
580 ld [%o0 + 100], %i1
581 ld [%o0 + 104], %i2
582 ld [%o0 + 108], %i3
583 ld [%o0 + 112], %i4
584 ld [%o0 + 116], %i5
585 ld [%o0 + 120], %i6
586 ld [%o0 + 124], %i7
587 ld [%o0 + 128], %g1
588 jmpl %g1, %g0
589 ld [%o0 + 32], %o0
590 END(_ZNK7_Unwind15Registers_SPARC6jumptoEv)
591 #endif
592
593 #if defined(__alpha__)
594 .set nomacro
595 .set noat
596 .hidden _ZN7_Unwind15Registers_AlphaC1Ev
597 LEAF_NOPROFILE(_ZN7_Unwind15Registers_AlphaC1Ev, 1)
598 stq $0, 0($16)
599 stq $1, 8($16)
600 stq $2, 16($16)
601 stq $3, 24($16)
602 stq $4, 32($16)
603 stq $5, 40($16)
604 stq $6, 48($16)
605 stq $7, 56($16)
606 stq $8, 64($16)
607 stq $9, 72($16)
608 stq $10, 80($16)
609 stq $11, 88($16)
610 stq $12, 96($16)
611 stq $13, 104($16)
612 stq $14, 112($16)
613 stq $15, 120($16)
614 stq $16, 128($16)
615 stq $17, 136($16)
616 stq $18, 144($16)
617 stq $19, 152($16)
618 stq $20, 160($16)
619 stq $21, 168($16)
620 stq $22, 176($16)
621 stq $23, 184($16)
622 stq $24, 192($16)
623 stq $25, 200($16)
624 stq $26, 208($16)
625 stq $27, 216($16)
626 stq $28, 224($16)
627 stq $29, 232($16)
628 stq $30, 240($16)
629 stq $26, 248($16)
630
631 stt $f0, 256($16)
632 stt $f1, 264($16)
633 stt $f2, 272($16)
634 stt $f3, 280($16)
635 stt $f4, 288($16)
636 stt $f5, 296($16)
637 stt $f6, 304($16)
638 stt $f7, 312($16)
639 stt $f8, 320($16)
640 stt $f9, 328($16)
641 stt $f10, 336($16)
642 stt $f11, 344($16)
643 stt $f12, 352($16)
644 stt $f13, 360($16)
645 stt $f14, 368($16)
646 stt $f15, 376($16)
647 stt $f16, 384($16)
648 stt $f17, 392($16)
649 stt $f18, 400($16)
650 stt $f19, 408($16)
651 stt $f20, 416($16)
652 stt $f21, 424($16)
653 stt $f22, 432($16)
654 stt $f23, 440($16)
655 stt $f24, 448($16)
656 stt $f25, 456($16)
657 stt $f26, 464($16)
658 stt $f27, 472($16)
659 stt $f28, 480($16)
660 stt $f29, 488($16)
661 stt $f30, 496($16)
662 ret $31, ($26), 1
663 END(_ZN7_Unwind15Registers_AlphaC1Ev)
664
665 .set nomacro
666 .set noat
667 .hidden _ZNK7_Unwind15Registers_Alpha6jumptoEv
668 LEAF_NOPROFILE(_ZNK7_Unwind15Registers_Alpha6jumptoEv, 1)
669 ldq $0, 0($16)
670 ldq $1, 8($16)
671 ldq $2, 16($16)
672 ldq $3, 24($16)
673 ldq $4, 32($16)
674 ldq $5, 40($16)
675 ldq $6, 48($16)
676 ldq $7, 56($16)
677 ldq $8, 64($16)
678 ldq $9, 72($16)
679 ldq $10, 80($16)
680 ldq $11, 88($16)
681 ldq $12, 96($16)
682 ldq $13, 104($16)
683 ldq $14, 112($16)
684 ldq $15, 120($16)
685 ldq $17, 136($16)
686 ldq $18, 144($16)
687 ldq $19, 152($16)
688 ldq $20, 160($16)
689 ldq $21, 168($16)
690 ldq $22, 176($16)
691 ldq $23, 184($16)
692 ldq $24, 192($16)
693 ldq $25, 200($16)
694 ldq $27, 216($16)
695 ldq $28, 224($16)
696 ldq $29, 232($16)
697 ldq $30, 240($16)
698 ldq $26, 248($16)
699
700 ldt $f0, 256($16)
701 ldt $f1, 264($16)
702 ldt $f2, 272($16)
703 ldt $f3, 280($16)
704 ldt $f4, 288($16)
705 ldt $f5, 296($16)
706 ldt $f6, 304($16)
707 ldt $f7, 312($16)
708 ldt $f8, 320($16)
709 ldt $f9, 328($16)
710 ldt $f10, 336($16)
711 ldt $f11, 344($16)
712 ldt $f12, 352($16)
713 ldt $f13, 360($16)
714 ldt $f14, 368($16)
715 ldt $f15, 376($16)
716 ldt $f16, 384($16)
717 ldt $f17, 392($16)
718 ldt $f18, 400($16)
719 ldt $f19, 408($16)
720 ldt $f20, 416($16)
721 ldt $f21, 424($16)
722 ldt $f22, 432($16)
723 ldt $f23, 440($16)
724 ldt $f24, 448($16)
725 ldt $f25, 456($16)
726 ldt $f26, 464($16)
727 ldt $f27, 472($16)
728 ldt $f28, 480($16)
729 ldt $f29, 488($16)
730 ldt $f30, 496($16)
731 ldq $16, 128($16)
732 ret $31, ($26), 1
733 END(_ZNK7_Unwind15Registers_Alpha6jumptoEv)
734 #endif
735