xref: /minix3/sys/lib/libunwind/unwind_registers.S (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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
16ENTRY(_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
36ENTRY(_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
61ENTRY(_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
85ENTRY(_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
118ENTRY(_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
194ENTRY(_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#ifdef __aarch64__
273	.hidden _ZN7_Unwind17Registers_aarch64C1Ev
274ENTRY(_ZN7_Unwind17Registers_aarch64C1Ev)
275	stp	x0, x1, [x0]
276	add	x0, x0, #16
277	stp	x2, x3, [x0], #16
278	stp	x4, x5, [x0], #16
279	stp	x6, x7, [x0], #16
280	stp	x8, x9, [x0], #16
281	stp	x10, x11, [x0], #16
282	stp	x12, x13, [x0], #16
283	stp	x14, x15, [x0], #16
284	stp	x16, x17, [x0], #16
285	stp	x18, x19, [x0], #16
286	stp	x20, x22, [x0], #16
287	stp	x22, x24, [x0], #16
288	stp	x24, x26, [x0], #16
289	stp	x26, x27, [x0], #16
290	stp	x28, x29, [x0], #16
291	mov	x1, sp
292	stp	x30, x1,  [x0], #16
293
294	add	x0, x0, #8
295	str	xzr, [x0], #8
296
297	stp	q0, q1, [x0], #64
298	stp	q2, q3, [x0], #64
299	stp	q4, q5, [x0], #64
300	stp	q6, q7, [x0], #64
301	stp	q8, q9, [x0], #64
302	stp	q10, q11, [x0], #64
303	stp	q12, q13, [x0], #64
304	stp	q14, q15, [x0], #64
305	stp	q16, q17, [x0], #64
306	stp	q18, q19, [x0], #64
307	stp	q20, q21, [x0], #64
308	stp	q22, q23, [x0], #64
309	stp	q24, q25, [x0], #64
310	stp	q26, q27, [x0], #64
311	stp	q28, q29, [x0], #64
312	stp	q30, q31, [x0], #64
313
314	ret
315END(_ZN7_Unwind17Registers_aarch64C1Ev)
316
317	.hidden _ZNK7_Unwind17Registers_aarch646jumptoEv
318ENTRY(_ZNK7_Unwind17Registers_aarch646jumptoEv)
319	ldp	x2, x3, [x0, #16]
320	ldp	x4, x6, [x0, #32]
321	ldp	x6, x7, [x0, #48]
322	ldp	x8, x9, [x0, #64]
323	ldp	x10, x11, [x0, #80]
324	ldp	x12, x13, [x0, #96]
325	ldp	x14, x16, [x0, #112]
326	ldp	x16, x17, [x0, #128]
327	ldp	x18, x19, [x0, #144]
328	ldp	x20, x21, [x0, #160]
329	ldp	x22, x23, [x0, #176]
330	ldp	x24, x26, [x0, #192]
331	ldp	x26, x27, [x0, #208]
332	ldp	x28, x29, [x0, #224]
333	ldp	x30, x1, [x0, #240]
334	mov	sp, x1
335
336	ldp	x0, x1, [x0, #0]
337	ret
338END(_ZNK7_Unwind17Registers_aarch646jumptoEv)
339#endif /* __aarch64__ */
340
341#if defined(__arm__)
342	.fpu vfpv3
343	.hidden _ZN7_Unwind15Registers_arm32C1Ev
344ARM_ENTRY(_ZN7_Unwind15Registers_arm32C1Ev)
345	stmia	r0, {r0-r14}
346	str	lr, [r0, #60]	/* PC */
347	mrs	r1, cpsr
348	str	r1, [r0, #64]	/* CPSR */
349	mov	r1, #0
350	str	r1, [r0, #68]
351	RET
352END(_ZN7_Unwind15Registers_arm32C1Ev)
353
354	.hidden _ZN7_Unwind15Registers_arm328lazyVFP1Ev
355ARM_ENTRY(_ZN7_Unwind15Registers_arm328lazyVFP1Ev)
356	add	r0, #72
357	vstmia	r0, {d0-d15}
358	RET
359END(_ZN7_Unwind15Registers_arm328lazyVFP1Ev)
360
361	.hidden _ZN7_Unwind15Registers_arm328lazyVFP3Ev
362ARM_ENTRY(_ZN7_Unwind15Registers_arm328lazyVFP3Ev)
363	add	r0, #200
364	vstmia	r0, {d16-d31}
365	RET
366END(_ZN7_Unwind15Registers_arm328lazyVFP3Ev)
367
368	.hidden _ZNK7_Unwind15Registers_arm326jumptoEv
369ARM_ENTRY(_ZNK7_Unwind15Registers_arm326jumptoEv)
370	ldrb	r1, [r0, #68]
371	tst	r1, #1
372	beq	.Lnovfp1
373	add	r2, r0, #72
374	vldmia	r2, {d0-d15}
375.Lnovfp1:
376	tst	r1, #2
377	beq	.Lnovfp3
378	add	r2, r0, #200
379	vldmia	r2, {d16-d31}
380.Lnovfp3:
381	ldr	r1, [r0, #64]
382	msr	cpsr_sxc, r1
383	ldmia	r0, {r0-r15}
384END(_ZNK7_Unwind15Registers_arm326jumptoEv)
385#endif
386
387#if defined(__vax__)
388	.hidden _ZN7_Unwind13Registers_vaxC1Ev
389ENTRY(_ZN7_Unwind13Registers_vaxC1Ev, R0)
390	subl2	$4, %sp
391	movl	4(%ap), %r0
392	movl	 %r1,  4(%r0)
393	movl	 %r2,  8(%r0)
394	movl	 %r3, 12(%r0)
395	movl	 %r4, 16(%r0)
396	movl	 %r5, 20(%r0)
397	movl	 %r6, 24(%r0)
398	movl	 %r7, 28(%r0)
399	movl	 %r8, 32(%r0)
400	movl	 %r9, 36(%r0)
401	movl	%r10, 40(%r0)
402	movl	%r11, 44(%r0)
403	movl	8(%fp), 48(%r0)
404	movl	12(%fp), 52(%r0)
405	addl3	$36, %sp, 56(%r0)
406	/* Return PC */
407	movl	16(%fp), 60(%r0)
408	/* Load saved value of r0 as r1 */
409	movl	20(%fp), 0(%r0)
410	/* Saved PSW */
411	movl	4(%fp), 64(%r0)
412	ret
413END(_ZN7_Unwind13Registers_vaxC1Ev)
414
415	.hidden _ZNK7_Unwind13Registers_vax6jumptoEv
416ENTRY(_ZNK7_Unwind13Registers_vax6jumptoEv, 0)
417	subl2	$4, %sp
418	movl	 4(%ap),  %r0
419	movl	 4(%r0),  %r1
420	movl	 8(%r0),  %r2
421	movl	12(%r0),  %r3
422	movl	16(%r0),  %r4
423	movl	20(%r0),  %r5
424	movl	24(%r0),  %r6
425	movl	28(%r0),  %r7
426	movl	32(%r0),  %r8
427	movl	36(%r0),  %r9
428	movl	40(%r0), %r10
429	movl	44(%r0), %r11
430	movl	48(%r0), %r12
431	movl	52(%r0), %r13
432	movl	56(%r0), %r14
433	movl	60(%r0), -(%sp)
434	movl	0(%r0), %r0
435	/* XXX restore PSW */
436	rsb
437END(_ZNK7_Unwind13Registers_vax6jumptoEv)
438#endif
439
440#if defined(__m68k__)
441ENTRY(_ZN7_Unwind14Registers_M68KC1Ev)
442	move.l	4(%sp), %a0
443	movem.l	%d0-%d7/%a0-%a7, (%a0)
444	fmovem	%fp0-%fp7, 72(%a0)
445	move.l	0(%sp), %a1
446	move.l	%a1, 64(%a0)
447	addq.l	#4, 60(%a0)
448	rts
449END(_ZN7_Unwind14Registers_M68KC1Ev)
450
451ENTRY(_ZNK7_Unwind14Registers_M68K6jumptoEv)
452	move.l	4(%sp), %a0
453	subq.l	#4, 60(%a0)
454	move.l	64(%a0), %a1
455	move.l	60(%a0), %a2
456	move.l	%a1, (%a2)
457	fmovem	72(%a0), %fp0-%fp7
458	movem.l	(%a0), %d0-%d7/%a0-%a7
459	rts
460END(_ZNK7_Unwind14Registers_M68K6jumptoEv)
461#endif
462
463#if defined(__sh3__)
464	.hidden _ZN7_Unwind13Registers_SH3C1Ev
465ENTRY(_ZN7_Unwind13Registers_SH3C1Ev)
466	add	#64, r4
467	mov.l	r8, @-r15
468	sts.l	pr, @-r15
469	mov.l	@r15+, r8
470	mov.l	r8, @r4
471	mov.l	@r15+, r8
472
473	mov.l   r15, @-r4
474	mov.l	r14, @-r4
475	mov.l	r13, @-r4
476	mov.l	r12, @-r4
477	mov.l	r11, @-r4
478	mov.l	r10, @-r4
479	mov.l	r9, @-r4
480	mov.l	r8, @-r4
481	mov.l	r7, @-r4
482	mov.l	r6, @-r4
483	mov.l	r5, @-r4
484	add	#-4, r4
485	mov.l	r3, @-r4
486	mov.l	r2, @-r4
487	mov.l	r1, @-r4
488	mov.l	r0, @-r4
489	rts
490	  mov.l	r4, @(16,r4)
491SET_ENTRY_SIZE(_ZN7_Unwind13Registers_SH3C1Ev)
492
493	.hidden _ZNK7_Unwind13Registers_SH36jumptoEv
494ENTRY(_ZNK7_Unwind13Registers_SH36jumptoEv)
495	mov	r4, r0
496	add	#4, r0
497	mov.l	@r0+, r1
498	mov.l	@r0+, r2
499	mov.l	@r0+, r3
500	mov.l	@r0+, r4
501	mov.l	@r0+, r5
502	mov.l	@r0+, r6
503	mov.l	@r0+, r7
504	mov.l	@r0+, r8
505	mov.l	@r0+, r9
506	mov.l	@r0+, r10
507	mov.l	@r0+, r11
508	mov.l	@r0+, r12
509	mov.l	@r0+, r13
510	mov.l	@(12, r0), r14
511	lds	r14, pr
512	mov.l	@r0+, r14
513	mov.l	@r0+, r15
514	mov.l	@r0, r0
515	jmp	@r0
516	  nop
517SET_ENTRY_SIZE(_ZNK7_Unwind13Registers_SH36jumptoEv)
518#endif
519
520#if defined(__sparc64__)
521#include <machine/trap.h>
522	.register %g2, #ignore
523	.register %g3, #ignore
524	.register %g6, #ignore
525	.register %g7, #ignore
526	.hidden _ZN7_Unwind17Registers_SPARC64C1Ev
527ENTRY(_ZN7_Unwind17Registers_SPARC64C1Ev)
528	t	ST_FLUSHWIN
529	stx	%g0, [%o0 + 0]
530	stx	%g1, [%o0 + 8]
531	stx	%g2, [%o0 + 16]
532	stx	%g3, [%o0 + 24]
533	stx	%g4, [%o0 + 32]
534	stx	%g5, [%o0 + 40]
535	stx	%g6, [%o0 + 48]
536	stx	%g7, [%o0 + 56]
537	stx	%o0, [%o0 + 64]
538	stx	%o1, [%o0 + 72]
539	stx	%o2, [%o0 + 80]
540	stx	%o3, [%o0 + 88]
541	stx	%o4, [%o0 + 96]
542	stx	%o5, [%o0 + 104]
543	stx	%o6, [%o0 + 112]
544	stx	%o7, [%o0 + 120]
545	stx	%l0, [%o0 + 128]
546	stx	%l1, [%o0 + 136]
547	stx	%l2, [%o0 + 144]
548	stx	%l3, [%o0 + 152]
549	stx	%l4, [%o0 + 160]
550	stx	%l5, [%o0 + 168]
551	stx	%l6, [%o0 + 176]
552	stx	%l7, [%o0 + 184]
553	stx	%i0, [%o0 + 192]
554	stx	%i1, [%o0 + 200]
555	stx	%i2, [%o0 + 208]
556	stx	%i3, [%o0 + 216]
557	stx	%i4, [%o0 + 224]
558	stx	%i5, [%o0 + 232]
559	stx	%i6, [%o0 + 240]
560	stx	%i7, [%o0 + 248]
561	add	%o7, 8, %g1
562	retl
563	 stx	%g1, [%o0 + 256]
564END(_ZN7_Unwind17Registers_SPARC64C1Ev)
565
566	.hidden _ZNK7_Unwind17Registers_SPARC646jumptoEv
567ENTRY(_ZNK7_Unwind17Registers_SPARC646jumptoEv)
568	t	ST_FLUSHWIN
569	ldx	[%o0 + 0], %g0
570	ldx	[%o0 + 8], %g1
571	ldx	[%o0 + 16], %g2
572	ldx	[%o0 + 24], %g3
573	ldx	[%o0 + 32], %g4
574	ldx	[%o0 + 40], %g5
575	ldx	[%o0 + 48], %g6
576	ldx	[%o0 + 56], %g7
577	ldx	[%o0 + 72], %o1
578	ldx	[%o0 + 80], %o2
579	ldx	[%o0 + 88], %o3
580	ldx	[%o0 + 96], %o4
581	ldx	[%o0 + 104], %o5
582	ldx	[%o0 + 112], %g1
583	sub	%g1, 2047, %o6
584	ldx	[%o0 + 120], %o7
585	ldx	[%o0 + 128], %l0
586	ldx	[%o0 + 136], %l1
587	ldx	[%o0 + 144], %l2
588	ldx	[%o0 + 152], %l3
589	ldx	[%o0 + 160], %l4
590	ldx	[%o0 + 168], %l5
591	ldx	[%o0 + 176], %l6
592	ldx	[%o0 + 184], %l7
593	ldx	[%o0 + 192], %i0
594	ldx	[%o0 + 200], %i1
595	ldx	[%o0 + 208], %i2
596	ldx	[%o0 + 216], %i3
597	ldx	[%o0 + 224], %i4
598	ldx	[%o0 + 232], %i5
599	ldx	[%o0 + 240], %i6
600	ldx	[%o0 + 248], %i7
601	ldx	[%o0 + 256], %g1
602	jmpl	%g1, %g0
603	  ldx	[%o0 + 64], %o0
604END(_ZNK7_Unwind17Registers_SPARC646jumptoEv)
605#elif defined(__sparc__)
606#include <machine/trap.h>
607
608	.hidden _ZN7_Unwind15Registers_SPARCC1Ev
609ENTRY(_ZN7_Unwind15Registers_SPARCC1Ev)
610	t	ST_FLUSHWIN
611	st	%g0, [%o0 + 0]
612	st	%g1, [%o0 + 4]
613	st	%g2, [%o0 + 8]
614	st	%g3, [%o0 + 12]
615	st	%g4, [%o0 + 16]
616	st	%g5, [%o0 + 20]
617	st	%g6, [%o0 + 24]
618	st	%g7, [%o0 + 28]
619	st	%o0, [%o0 + 32]
620	st	%o1, [%o0 + 36]
621	st	%o2, [%o0 + 40]
622	st	%o3, [%o0 + 44]
623	st	%o4, [%o0 + 48]
624	st	%o5, [%o0 + 52]
625	st	%o6, [%o0 + 56]
626	st	%o7, [%o0 + 60]
627	st	%l0, [%o0 + 64]
628	st	%l1, [%o0 + 68]
629	st	%l2, [%o0 + 72]
630	st	%l3, [%o0 + 76]
631	st	%l4, [%o0 + 80]
632	st	%l5, [%o0 + 84]
633	st	%l6, [%o0 + 88]
634	st	%l7, [%o0 + 92]
635	st	%i0, [%o0 + 96]
636	st	%i1, [%o0 + 100]
637	st	%i2, [%o0 + 104]
638	st	%i3, [%o0 + 108]
639	st	%i4, [%o0 + 112]
640	st	%i5, [%o0 + 116]
641	st	%i6, [%o0 + 120]
642	st	%i7, [%o0 + 124 ]
643	add	%o7, 8, %g1
644	retl
645	 st	%g1, [%o0 + 128]
646END(_ZN7_Unwind15Registers_SPARCC1Ev)
647
648	.hidden _ZNK7_Unwind15Registers_SPARC6jumptoEv
649ENTRY(_ZNK7_Unwind15Registers_SPARC6jumptoEv)
650	t	ST_FLUSHWIN
651	ld	[%o0 + 0], %g0
652	ld	[%o0 + 4], %g1
653	ld	[%o0 + 8], %g2
654	ld	[%o0 + 12], %g3
655	ld	[%o0 + 16], %g4
656	ld	[%o0 + 20], %g5
657	ld	[%o0 + 24], %g6
658	ld	[%o0 + 28], %g7
659	ld	[%o0 + 36], %o1
660	ld	[%o0 + 40], %o2
661	ld	[%o0 + 44], %o3
662	ld	[%o0 + 48], %o4
663	ld	[%o0 + 52], %o5
664	ld	[%o0 + 56], %o6
665	ld	[%o0 + 60], %o7
666	ld	[%o0 + 64], %l0
667	ld	[%o0 + 68], %l1
668	ld	[%o0 + 72], %l2
669	ld	[%o0 + 76], %l3
670	ld	[%o0 + 80], %l4
671	ld	[%o0 + 84], %l5
672	ld	[%o0 + 88], %l6
673	ld	[%o0 + 92], %l7
674	ld	[%o0 + 96], %i0
675	ld	[%o0 + 100], %i1
676	ld	[%o0 + 104], %i2
677	ld	[%o0 + 108], %i3
678	ld	[%o0 + 112], %i4
679	ld	[%o0 + 116], %i5
680	ld	[%o0 + 120], %i6
681	ld	[%o0 + 124], %i7
682	ld	[%o0 + 128], %g1
683	jmpl	%g1, %g0
684	  ld	[%o0 + 32], %o0
685END(_ZNK7_Unwind15Registers_SPARC6jumptoEv)
686#endif
687
688#if defined(__alpha__)
689	.set nomacro
690	.set noat
691	.hidden _ZN7_Unwind15Registers_AlphaC1Ev
692LEAF_NOPROFILE(_ZN7_Unwind15Registers_AlphaC1Ev, 1)
693	stq $0, 0($16)
694	stq $1, 8($16)
695	stq $2, 16($16)
696	stq $3, 24($16)
697	stq $4, 32($16)
698	stq $5, 40($16)
699	stq $6, 48($16)
700	stq $7, 56($16)
701	stq $8, 64($16)
702	stq $9, 72($16)
703	stq $10, 80($16)
704	stq $11, 88($16)
705	stq $12, 96($16)
706	stq $13, 104($16)
707	stq $14, 112($16)
708	stq $15, 120($16)
709	stq $16, 128($16)
710	stq $17, 136($16)
711	stq $18, 144($16)
712	stq $19, 152($16)
713	stq $20, 160($16)
714	stq $21, 168($16)
715	stq $22, 176($16)
716	stq $23, 184($16)
717	stq $24, 192($16)
718	stq $25, 200($16)
719	stq $26, 208($16)
720	stq $27, 216($16)
721	stq $28, 224($16)
722	stq $29, 232($16)
723	stq $30, 240($16)
724	stq $26, 248($16)
725
726	stt $f0, 256($16)
727	stt $f1, 264($16)
728	stt $f2, 272($16)
729	stt $f3, 280($16)
730	stt $f4, 288($16)
731	stt $f5, 296($16)
732	stt $f6, 304($16)
733	stt $f7, 312($16)
734	stt $f8, 320($16)
735	stt $f9, 328($16)
736	stt $f10, 336($16)
737	stt $f11, 344($16)
738	stt $f12, 352($16)
739	stt $f13, 360($16)
740	stt $f14, 368($16)
741	stt $f15, 376($16)
742	stt $f16, 384($16)
743	stt $f17, 392($16)
744	stt $f18, 400($16)
745	stt $f19, 408($16)
746	stt $f20, 416($16)
747	stt $f21, 424($16)
748	stt $f22, 432($16)
749	stt $f23, 440($16)
750	stt $f24, 448($16)
751	stt $f25, 456($16)
752	stt $f26, 464($16)
753	stt $f27, 472($16)
754	stt $f28, 480($16)
755	stt $f29, 488($16)
756	stt $f30, 496($16)
757	ret $31, ($26), 1
758END(_ZN7_Unwind15Registers_AlphaC1Ev)
759
760	.set nomacro
761	.set noat
762	.hidden _ZNK7_Unwind15Registers_Alpha6jumptoEv
763LEAF_NOPROFILE(_ZNK7_Unwind15Registers_Alpha6jumptoEv, 1)
764	ldq $0, 0($16)
765	ldq $1, 8($16)
766	ldq $2, 16($16)
767	ldq $3, 24($16)
768	ldq $4, 32($16)
769	ldq $5, 40($16)
770	ldq $6, 48($16)
771	ldq $7, 56($16)
772	ldq $8, 64($16)
773	ldq $9, 72($16)
774	ldq $10, 80($16)
775	ldq $11, 88($16)
776	ldq $12, 96($16)
777	ldq $13, 104($16)
778	ldq $14, 112($16)
779	ldq $15, 120($16)
780	ldq $17, 136($16)
781	ldq $18, 144($16)
782	ldq $19, 152($16)
783	ldq $20, 160($16)
784	ldq $21, 168($16)
785	ldq $22, 176($16)
786	ldq $23, 184($16)
787	ldq $24, 192($16)
788	ldq $25, 200($16)
789	ldq $27, 216($16)
790	ldq $28, 224($16)
791	ldq $29, 232($16)
792	ldq $30, 240($16)
793	ldq $26, 248($16)
794
795	ldt $f0, 256($16)
796	ldt $f1, 264($16)
797	ldt $f2, 272($16)
798	ldt $f3, 280($16)
799	ldt $f4, 288($16)
800	ldt $f5, 296($16)
801	ldt $f6, 304($16)
802	ldt $f7, 312($16)
803	ldt $f8, 320($16)
804	ldt $f9, 328($16)
805	ldt $f10, 336($16)
806	ldt $f11, 344($16)
807	ldt $f12, 352($16)
808	ldt $f13, 360($16)
809	ldt $f14, 368($16)
810	ldt $f15, 376($16)
811	ldt $f16, 384($16)
812	ldt $f17, 392($16)
813	ldt $f18, 400($16)
814	ldt $f19, 408($16)
815	ldt $f20, 416($16)
816	ldt $f21, 424($16)
817	ldt $f22, 432($16)
818	ldt $f23, 440($16)
819	ldt $f24, 448($16)
820	ldt $f25, 456($16)
821	ldt $f26, 464($16)
822	ldt $f27, 472($16)
823	ldt $f28, 480($16)
824	ldt $f29, 488($16)
825	ldt $f30, 496($16)
826	ldq $16, 128($16)
827	ret $31, ($26), 1
828END(_ZNK7_Unwind15Registers_Alpha6jumptoEv)
829#endif
830
831#if defined(__mips_n64) || defined(__mips_n32)
832	.set noat
833LEAF(_ZN7_Unwind16Registers_MIPS64C1Ev)
834#if 0
835	FP_S	$f0, 256($4)
836	FP_S	$f1, 264($4)
837	FP_S	$f2, 272($4)
838	FP_S	$f3, 280($4)
839	FP_S	$f4, 288($4)
840	FP_S	$f5, 296($4)
841	FP_S	$f6, 304($4)
842	FP_S	$f7, 312($4)
843	FP_S	$f8, 320($4)
844	FP_S	$f9, 328($4)
845	FP_S	$f10, 336($4)
846	FP_S	$f11, 344($4)
847	FP_S	$f12, 352($4)
848	FP_S	$f13, 360($4)
849	FP_S	$f14, 368($4)
850	FP_S	$f15, 376($4)
851	FP_S	$f16, 384($4)
852	FP_S	$f17, 392($4)
853	FP_S	$f18, 400($4)
854	FP_S	$f19, 408($4)
855	FP_S	$f20, 416($4)
856	FP_S	$f21, 424($4)
857	FP_S	$f22, 432($4)
858	FP_S	$f23, 440($4)
859	FP_S	$f24, 448($4)
860	FP_S	$f25, 456($4)
861	FP_S	$f26, 464($4)
862	FP_S	$f27, 472($4)
863	FP_S	$f28, 480($4)
864	FP_S	$f29, 488($4)
865	FP_S	$f30, 496($4)
866	FP_S	$f31, 504($4)
867#endif
868	sd	$31, 0($4)
869	sd	$1, 4($4)
870	sd	$2, 8($4)
871	sd	$3, 12($4)
872	sd	$4, 16($4)
873	sd	$5, 20($4)
874	sd	$6, 24($4)
875	sd	$7, 28($4)
876	sd	$8, 32($4)
877	sd	$9, 36($4)
878	sd	$10, 40($4)
879	sd	$11, 44($4)
880	sd	$12, 48($4)
881	sd	$13, 52($4)
882	sd	$14, 56($4)
883	sd	$15, 60($4)
884	sd	$16, 64($4)
885	sd	$17, 68($4)
886	sd	$18, 72($4)
887	sd	$19, 76($4)
888	sd	$20, 80($4)
889	sd	$21, 84($4)
890	sd	$22, 88($4)
891	sd	$23, 92($4)
892	sd	$24, 96($4)
893	sd	$25, 100($4)
894	sd	$26, 104($4)
895	sd	$27, 108($4)
896	sd	$28, 112($4)
897	sd	$29, 116($4)
898	sd	$30, 120($4)
899	sd	$31, 124($4)
900	jr	$31
901	  nop
902END(_ZN7_Unwind16Registers_MIPS64C1Ev)
903
904LEAF(_ZNK7_Unwind16Registers_MIPS646jumptoEv)
905#if 0
906	FP_L	$f0, 256($4)
907	FP_L	$f1, 264($4)
908	FP_L	$f2, 272($4)
909	FP_L	$f3, 280($4)
910	FP_L	$f4, 288($4)
911	FP_L	$f5, 296($4)
912	FP_L	$f6, 304($4)
913	FP_L	$f7, 312($4)
914	FP_L	$f8, 320($4)
915	FP_L	$f9, 328($4)
916	FP_L	$f10, 336($4)
917	FP_L	$f11, 344($4)
918	FP_L	$f12, 352($4)
919	FP_L	$f13, 360($4)
920	FP_L	$f14, 368($4)
921	FP_L	$f15, 376($4)
922	FP_L	$f16, 384($4)
923	FP_L	$f17, 392($4)
924	FP_L	$f18, 400($4)
925	FP_L	$f19, 408($4)
926	FP_L	$f20, 416($4)
927	FP_L	$f21, 424($4)
928	FP_L	$f22, 432($4)
929	FP_L	$f23, 440($4)
930	FP_L	$f24, 448($4)
931	FP_L	$f25, 456($4)
932	FP_L	$f26, 464($4)
933	FP_L	$f27, 472($4)
934	FP_L	$f28, 480($4)
935	FP_L	$f29, 488($4)
936	FP_L	$f30, 496($4)
937	FP_L	$f31, 504($4)
938#endif
939
940	ld	$31, 0($4)
941	ld	$1, 8($4)
942	ld	$2, 16($4)
943	ld	$3, 24($4)
944	ld	$5, 40($4)
945	ld	$6, 48($4)
946	ld	$7, 56($4)
947	ld	$8, 64($4)
948	ld	$9, 72($4)
949	ld	$10, 80($4)
950	ld	$11, 88($4)
951	ld	$12, 96($4)
952	ld	$13, 104($4)
953	ld	$14, 112($4)
954	ld	$15, 120($4)
955	ld	$16, 128($4)
956	ld	$17, 136($4)
957	ld	$18, 144($4)
958	ld	$19, 152($4)
959	ld	$20, 160($4)
960	ld	$21, 168($4)
961	ld	$22, 176($4)
962	ld	$23, 184($4)
963	ld	$24, 192($4)
964	ld	$25, 200($4)
965	ld	$26, 208($4)
966	ld	$27, 216($4)
967	ld	$28, 224($4)
968	ld	$29, 232($4)
969	ld	$30, 240($4)
970	 ld	$4, 32($4)
971	jr	$31
972	  nop
973END(_ZNK7_Unwind16Registers_MIPS646jumptoEv)
974#elif defined(__mips__)
975	.set noat
976LEAF(_ZN7_Unwind14Registers_MIPSC1Ev)
977#if 0
978#if __mips > 1
979	FP_S	$f0, 128($4)
980	FP_S	$f1, 136($4)
981	FP_S	$f2, 144($4)
982	FP_S	$f3, 152($4)
983	FP_S	$f4, 160($4)
984	FP_S	$f5, 168($4)
985	FP_S	$f6, 176($4)
986	FP_S	$f7, 184($4)
987	FP_S	$f8, 192($4)
988	FP_S	$f9, 200($4)
989	FP_S	$f10, 208($4)
990	FP_S	$f11, 216($4)
991	FP_S	$f12, 224($4)
992	FP_S	$f13, 232($4)
993	FP_S	$f14, 240($4)
994	FP_S	$f15, 248($4)
995	FP_S	$f16, 256($4)
996	FP_S	$f17, 264($4)
997	FP_S	$f18, 272($4)
998	FP_S	$f19, 280($4)
999	FP_S	$f20, 288($4)
1000	FP_S	$f21, 296($4)
1001	FP_S	$f22, 304($4)
1002	FP_S	$f23, 312($4)
1003	FP_S	$f24, 320($4)
1004	FP_S	$f25, 328($4)
1005	FP_S	$f26, 336($4)
1006	FP_S	$f27, 344($4)
1007	FP_S	$f28, 352($4)
1008	FP_S	$f29, 360($4)
1009	FP_S	$f30, 368($4)
1010	FP_S	$f31, 376($4)
1011#endif
1012#endif
1013	sw	$31, 0($4)
1014	sw	$1, 4($4)
1015	sw	$2, 8($4)
1016	sw	$3, 12($4)
1017	sw	$4, 16($4)
1018	sw	$5, 20($4)
1019	sw	$6, 24($4)
1020	sw	$7, 28($4)
1021	sw	$8, 32($4)
1022	sw	$9, 36($4)
1023	sw	$10, 40($4)
1024	sw	$11, 44($4)
1025	sw	$12, 48($4)
1026	sw	$13, 52($4)
1027	sw	$14, 56($4)
1028	sw	$15, 60($4)
1029	sw	$16, 64($4)
1030	sw	$17, 68($4)
1031	sw	$18, 72($4)
1032	sw	$19, 76($4)
1033	sw	$20, 80($4)
1034	sw	$21, 84($4)
1035	sw	$22, 88($4)
1036	sw	$23, 92($4)
1037	sw	$24, 96($4)
1038	sw	$25, 100($4)
1039	sw	$26, 104($4)
1040	sw	$27, 108($4)
1041	sw	$28, 112($4)
1042	sw	$29, 116($4)
1043	sw	$30, 120($4)
1044	sw	$31, 124($4)
1045	jr	$31
1046	  nop
1047END(_ZN7_Unwind14Registers_MIPSC1Ev)
1048
1049LEAF(_ZNK7_Unwind14Registers_MIPS6jumptoEv)
1050#if 0
1051#if __mips > 1
1052	FP_L	$f0, 128($4)
1053	FP_L	$f1, 136($4)
1054	FP_L	$f2, 144($4)
1055	FP_L	$f3, 152($4)
1056	FP_L	$f4, 160($4)
1057	FP_L	$f5, 168($4)
1058	FP_L	$f6, 176($4)
1059	FP_L	$f7, 184($4)
1060	FP_L	$f8, 192($4)
1061	FP_L	$f9, 200($4)
1062	FP_L	$f10, 208($4)
1063	FP_L	$f11, 216($4)
1064	FP_L	$f12, 224($4)
1065	FP_L	$f13, 232($4)
1066	FP_L	$f14, 240($4)
1067	FP_L	$f15, 248($4)
1068	FP_L	$f16, 256($4)
1069	FP_L	$f17, 264($4)
1070	FP_L	$f18, 272($4)
1071	FP_L	$f19, 280($4)
1072	FP_L	$f20, 288($4)
1073	FP_L	$f21, 296($4)
1074	FP_L	$f22, 304($4)
1075	FP_L	$f23, 312($4)
1076	FP_L	$f24, 320($4)
1077	FP_L	$f25, 328($4)
1078	FP_L	$f26, 336($4)
1079	FP_L	$f27, 344($4)
1080	FP_L	$f28, 352($4)
1081	FP_L	$f29, 360($4)
1082	FP_L	$f30, 368($4)
1083	FP_L	$f31, 376($4)
1084#endif
1085#endif
1086
1087	lw	$31, 0($4)
1088	lw	$1, 4($4)
1089	lw	$2, 8($4)
1090	lw	$3, 12($4)
1091	lw	$5, 20($4)
1092	lw	$6, 24($4)
1093	lw	$7, 28($4)
1094	lw	$8, 32($4)
1095	lw	$9, 36($4)
1096	lw	$10, 40($4)
1097	lw	$11, 44($4)
1098	lw	$12, 48($4)
1099	lw	$13, 52($4)
1100	lw	$14, 56($4)
1101	lw	$15, 60($4)
1102	lw	$16, 64($4)
1103	lw	$17, 68($4)
1104	lw	$18, 72($4)
1105	lw	$19, 76($4)
1106	lw	$20, 80($4)
1107	lw	$21, 84($4)
1108	lw	$22, 88($4)
1109	lw	$23, 92($4)
1110	lw	$24, 96($4)
1111	lw	$25, 100($4)
1112	lw	$26, 104($4)
1113	lw	$27, 108($4)
1114	lw	$28, 112($4)
1115	lw	$29, 116($4)
1116	lw	$30, 120($4)
1117	 lw	$4, 16($4)
1118	jr	$31
1119	  nop
1120END(_ZNK7_Unwind14Registers_MIPS6jumptoEv)
1121#endif
1122
1123#if defined(__hppa__)
1124LEAF_ENTRY_NOPROFILE(_ZN7_Unwind14Registers_HPPAC1Ev)
1125	stw %r2, 0(%r26)
1126	stw %r1, 4(%r26)
1127	stw %r2, 8(%r26)
1128	stw %r3, 12(%r26)
1129	stw %r4, 16(%r26)
1130	stw %r5, 20(%r26)
1131	stw %r6, 24(%r26)
1132	stw %r7, 28(%r26)
1133	stw %r8, 32(%r26)
1134	stw %r9, 36(%r26)
1135	stw %r10, 40(%r26)
1136	stw %r11, 44(%r26)
1137	stw %r12, 48(%r26)
1138	stw %r13, 52(%r26)
1139	stw %r14, 56(%r26)
1140	stw %r15, 60(%r26)
1141	stw %r16, 64(%r26)
1142	stw %r17, 68(%r26)
1143	stw %r18, 72(%r26)
1144	stw %r19, 76(%r26)
1145	stw %r20, 80(%r26)
1146	stw %r21, 84(%r26)
1147	stw %r22, 88(%r26)
1148	stw %r23, 92(%r26)
1149	stw %r24, 96(%r26)
1150	stw %r25, 100(%r26)
1151	stw %r26, 104(%r26)
1152	stw %r27, 108(%r26)
1153	stw %r28, 112(%r26)
1154	stw %r29, 116(%r26)
1155	stw %r30, 120(%r26)
1156	stw %r31, 124(%r26)
1157	ldi 128, %r19
1158	addl %r19, %r26, %r19
1159	fstds,ma %fr4, 8(%r19)
1160	fstds,ma %fr5, 8(%r19)
1161	fstds,ma %fr6, 8(%r19)
1162	fstds,ma %fr7, 8(%r19)
1163	fstds,ma %fr8, 8(%r19)
1164	fstds,ma %fr9, 8(%r19)
1165	fstds,ma %fr10, 8(%r19)
1166	fstds,ma %fr11, 8(%r19)
1167	fstds,ma %fr12, 8(%r19)
1168	fstds,ma %fr13, 8(%r19)
1169	fstds,ma %fr14, 8(%r19)
1170	fstds,ma %fr15, 8(%r19)
1171	fstds,ma %fr16, 8(%r19)
1172	fstds,ma %fr17, 8(%r19)
1173	fstds,ma %fr18, 8(%r19)
1174	fstds,ma %fr19, 8(%r19)
1175	fstds,ma %fr20, 8(%r19)
1176	fstds,ma %fr21, 8(%r19)
1177	fstds,ma %fr22, 8(%r19)
1178	fstds,ma %fr23, 8(%r19)
1179	fstds,ma %fr24, 8(%r19)
1180	fstds,ma %fr25, 8(%r19)
1181	fstds,ma %fr19, 8(%r19)
1182	fstds,ma %fr27, 8(%r19)
1183	fstds,ma %fr28, 8(%r19)
1184	fstds,ma %fr29, 8(%r19)
1185	fstds,ma %fr30, 8(%r19)
1186	fstds,ma %fr31, 8(%r19)
1187	ldw 76(%r26), %r19
1188	bv,n %r0(%r2)
1189EXIT(_ZN7_Unwind14Registers_HPPAC1Ev)
1190
1191LEAF_ENTRY_NOPROFILE(_ZNK7_Unwind14Registers_HPPA6jumptoEv)
1192	ldi 128, %r19
1193	addl %r19, %r26, %r19
1194	fldds,ma 8(%r19), %fr4
1195	fldds,ma 8(%r19), %fr5
1196	fldds,ma 8(%r19), %fr6
1197	fldds,ma 8(%r19), %fr7
1198	fldds,ma 8(%r19), %fr8
1199	fldds,ma 8(%r19), %fr9
1200	fldds,ma 8(%r19), %fr10
1201	fldds,ma 8(%r19), %fr11
1202	fldds,ma 8(%r19), %fr12
1203	fldds,ma 8(%r19), %fr13
1204	fldds,ma 8(%r19), %fr14
1205	fldds,ma 8(%r19), %fr15
1206	fldds,ma 8(%r19), %fr16
1207	fldds,ma 8(%r19), %fr17
1208	fldds,ma 8(%r19), %fr18
1209	fldds,ma 8(%r19), %fr19
1210	fldds,ma 8(%r19), %fr20
1211	fldds,ma 8(%r19), %fr21
1212	fldds,ma 8(%r19), %fr22
1213	fldds,ma 8(%r19), %fr23
1214	fldds,ma 8(%r19), %fr24
1215	fldds,ma 8(%r19), %fr25
1216	fldds,ma 8(%r19), %fr26
1217	fldds,ma 8(%r19), %fr27
1218	fldds,ma 8(%r19), %fr28
1219	fldds,ma 8(%r19), %fr29
1220	fldds,ma 8(%r19), %fr30
1221	fldds,ma 8(%r19), %fr31
1222	ldw 0(%r26), %r2
1223	ldw 4(%r26), %r1
1224	ldw 12(%r26), %r3
1225	ldw 16(%r26), %r4
1226	ldw 20(%r26), %r5
1227	ldw 24(%r26), %r6
1228	ldw 28(%r26), %r7
1229	ldw 32(%r26), %r8
1230	ldw 36(%r26), %r9
1231	ldw 40(%r26), %r10
1232	ldw 44(%r26), %r11
1233	ldw 48(%r26), %r12
1234	ldw 52(%r26), %r13
1235	ldw 56(%r26), %r14
1236	ldw 60(%r26), %r15
1237	ldw 64(%r26), %r16
1238	ldw 68(%r26), %r17
1239	ldw 72(%r26), %r18
1240	ldw 76(%r26), %r19
1241	ldw 80(%r26), %r20
1242	ldw 84(%r26), %r21
1243	ldw 88(%r26), %r22
1244	ldw 92(%r26), %r23
1245	ldw 96(%r26), %r24
1246	ldw 100(%r26), %r25
1247	ldw 108(%r26), %r27
1248	ldw 112(%r26), %r28
1249	ldw 116(%r26), %r29
1250	ldw 120(%r26), %r30
1251	ldw 124(%r26), %r31
1252	ldw 104(%r26), %r26
1253	bv,n %r0(%r2)
1254EXIT(_ZNK7_Unwind14Registers_HPPA6jumptoEv)
1255#endif
1256
1257#ifdef __or1k__
1258ENTRY_NP(_ZN7_Unwind14Registers_or1kC1Ev)
1259	l.sw	(0*3)(r3), r0
1260	l.sw	(1*3)(r3), r1
1261	l.sw	(2*3)(r3), r2
1262	l.sw	(3*3)(r3), r3
1263	l.sw	(4*3)(r3), r4
1264	l.sw	(5*3)(r3), r5
1265	l.sw	(6*3)(r3), r6
1266	l.sw	(7*3)(r3), r7
1267	l.sw	(8*3)(r3), r8
1268	l.sw	(9*3)(r3), r9
1269	l.sw	(10*3)(r3), r10
1270	l.sw	(11*3)(r3), r11
1271	l.sw	(12*3)(r3), r12
1272	l.sw	(13*3)(r3), r13
1273	l.sw	(14*3)(r3), r14
1274	l.sw	(15*3)(r3), r15
1275	l.sw	(16*3)(r3), r16
1276	l.sw	(17*3)(r3), r17
1277	l.sw	(18*3)(r3), r18
1278	l.sw	(19*3)(r3), r19
1279	l.sw	(20*3)(r3), r20
1280	l.sw	(21*3)(r3), r21
1281	l.sw	(22*3)(r3), r22
1282	l.sw	(23*3)(r3), r23
1283	l.sw	(24*3)(r3), r24
1284	l.sw	(25*3)(r3), r25
1285	l.sw	(26*3)(r3), r26
1286	l.sw	(27*3)(r3), r27
1287	l.sw	(28*3)(r3), r28
1288	l.sw	(29*3)(r3), r29
1289	l.sw	(30*3)(r3), r30
1290	l.sw	(31*3)(r3), r31
1291	l.mfspr	r4, r0, 20
1292	l.sw	(32*4)(r3), r4
1293	l.jr	lr
1294	l.nop
1295END(_ZN7_Unwind14Registers_or1kC1Ev)
1296
1297ENTRY_NP(_ZNK7_Unwind14Registers_or1k6jumptoEv)
1298	l.lwz	r6, (32*4)(r3)
1299	l.mtspr	r0, r6, 20
1300	l.lwz	r0, (0*4)(r3)
1301	l.lwz	r1, (1*4)(r3)
1302	l.lwz	r2, (2*4)(r3)
1303	l.lwz	r4, (4*4)(r3)
1304	l.lwz	r5, (5*4)(r3)
1305	l.lwz	r6, (6*4)(r3)
1306	l.lwz	r7, (7*4)(r3)
1307	l.lwz	r8, (8*4)(r3)
1308	l.lwz	r9, (9*4)(r3)
1309	l.lwz	r10, (10*4)(r3)
1310	l.lwz	r11, (11*4)(r3)
1311	l.lwz	r12, (12*4)(r3)
1312	l.lwz	r13, (13*4)(r3)
1313	l.lwz	r14, (14*4)(r3)
1314	l.lwz	r15, (15*4)(r3)
1315	l.lwz	r16, (16*4)(r3)
1316	l.lwz	r17, (17*4)(r3)
1317	l.lwz	r18, (18*4)(r3)
1318	l.lwz	r19, (19*4)(r3)
1319	l.lwz	r20, (20*4)(r3)
1320	l.lwz	r21, (21*4)(r3)
1321	l.lwz	r22, (22*4)(r3)
1322	l.lwz	r23, (23*4)(r3)
1323	l.lwz	r24, (24*4)(r3)
1324	l.lwz	r25, (25*4)(r3)
1325	l.lwz	r26, (26*4)(r3)
1326	l.lwz	r27, (27*4)(r3)
1327	l.lwz	r28, (28*4)(r3)
1328	l.lwz	r29, (29*4)(r3)
1329	l.lwz	r30, (30*4)(r3)
1330	l.lwz	r31, (31*4)(r3)
1331
1332	l.lwz	r3, (3*4)(r3)		/* return r3 */
1333	l.jr	lr
1334END(_ZNK7_Unwind14Registers_or1k6jumptoEv)
1335
1336#endif
1337