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