xref: /minix3/sys/lib/libunwind/unwind_registers.S (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1472758f3SLionel Sambuc//===------------------------- unwind_registers.S -------------------------===//
2472758f3SLionel Sambuc//
3472758f3SLionel Sambuc//                     The LLVM Compiler Infrastructure
4472758f3SLionel Sambuc//
5472758f3SLionel Sambuc// This file is dual licensed under the MIT and the University of Illinois Open
6472758f3SLionel Sambuc// Source Licenses. See LICENSE.TXT for details.
7472758f3SLionel Sambuc//
8472758f3SLionel Sambuc//
9472758f3SLionel Sambuc// Abstracts accessing local vs remote address spaces.
10472758f3SLionel Sambuc//
11472758f3SLionel Sambuc//===----------------------------------------------------------------------===//
12472758f3SLionel Sambuc#include <machine/asm.h>
13472758f3SLionel Sambuc
14472758f3SLionel Sambuc#ifdef __i386__
15472758f3SLionel Sambuc	.hidden _ZN7_Unwind13Registers_x86C1Ev
16472758f3SLionel SambucENTRY(_ZN7_Unwind13Registers_x86C1Ev)
17472758f3SLionel Sambuc	pushl	%eax
18472758f3SLionel Sambuc	movl	8(%esp), %eax	/* Load this */
19472758f3SLionel Sambuc	/* Save all registers except EAX, EIP and ESP */
20472758f3SLionel Sambuc	/* Skip ECX */
21472758f3SLionel Sambuc	/* Skip EDX */
22472758f3SLionel Sambuc	movl	%ebx, 12(%eax)
23472758f3SLionel Sambuc	movl	%ebp, 20(%eax)
24472758f3SLionel Sambuc	movl	%esi, 24(%eax)
25472758f3SLionel Sambuc	movl	%edi, 28(%eax)
26472758f3SLionel Sambuc
27472758f3SLionel Sambuc	leal	8(%esp), %edx	/* Compute ESP from the call site */
28472758f3SLionel Sambuc	movl	%edx, 16(%eax)	/* ...and store it as ESP */
29472758f3SLionel Sambuc	movl	4(%esp), %edx	/* Load return address */
30472758f3SLionel Sambuc	movl	%edx, 32(%eax)	/* ...and store it as EIP */
31472758f3SLionel Sambuc	popl	%edx		/* Take old EAX from stack */
32472758f3SLionel Sambuc	movl	%edx, 0(%eax)	/* ...and store it */	// XXX skip
33472758f3SLionel Sambuc	ret
34472758f3SLionel Sambuc
35472758f3SLionel Sambuc	.hidden _ZNK7_Unwind13Registers_x866jumptoEv
36472758f3SLionel SambucENTRY(_ZNK7_Unwind13Registers_x866jumptoEv)
37472758f3SLionel Sambuc	movl	4(%esp), %eax	/* Load this */
38472758f3SLionel Sambuc	movl	16(%eax), %edx	/* Load new stack pointer */
39472758f3SLionel Sambuc	subl	$4, %edx	/* Reserve space on new stack for EIP */
40472758f3SLionel Sambuc	movl	32(%eax), %ebx	/* Load new EIP */
41472758f3SLionel Sambuc	movl	%ebx, 0(%edx)	/* ...and save it on the new stack */
42472758f3SLionel Sambuc	pushl	%edx		/* Save new stack pointer on old stack */
43472758f3SLionel Sambuc	/* New stack is prepared, now restore all registers except ESP */
44472758f3SLionel Sambuc	/* EAX is the index register and must be restored last */
45472758f3SLionel Sambuc	movl	4(%eax), %ecx
46472758f3SLionel Sambuc	movl	8(%eax), %edx
47472758f3SLionel Sambuc	movl	12(%eax), %ebx
48472758f3SLionel Sambuc	movl	20(%eax), %ebp
49472758f3SLionel Sambuc	/* 16 is ESP */
50472758f3SLionel Sambuc	movl	24(%eax), %esi
51472758f3SLionel Sambuc	movl	28(%eax), %edi
52472758f3SLionel Sambuc	movl	0(%eax), %eax
53472758f3SLionel Sambuc	/* Now load new stack pointer pushed on the old stack earlier */
54472758f3SLionel Sambuc	popl	%esp
55472758f3SLionel Sambuc	/* Return address is already on the new stack. */
56472758f3SLionel Sambuc	ret
57472758f3SLionel Sambuc#endif
58472758f3SLionel Sambuc
59472758f3SLionel Sambuc#ifdef __x86_64
60472758f3SLionel Sambuc	.hidden _ZN7_Unwind16Registers_x86_64C1Ev
61472758f3SLionel SambucENTRY(_ZN7_Unwind16Registers_x86_64C1Ev)
62472758f3SLionel Sambuc	/* RDI == this */
63472758f3SLionel Sambuc	/* Skip RAX */
64472758f3SLionel Sambuc	/* Skip RDX */
65472758f3SLionel Sambuc	/* Skip RCX */
66472758f3SLionel Sambuc	movq	%rbx, 24(%rdi)
67472758f3SLionel Sambuc	/* Skip RSI */
68472758f3SLionel Sambuc	/* Skip RDI */
69472758f3SLionel Sambuc	movq	%rbp, 48(%rdi)
70472758f3SLionel Sambuc	leaq	8(%rsp), %rax
71472758f3SLionel Sambuc	movq	%rax, 56(%rdi)
72472758f3SLionel Sambuc	/* Skip R8 */
73472758f3SLionel Sambuc	/* Skip R9 */
74472758f3SLionel Sambuc	/* Skip R10 */
75472758f3SLionel Sambuc	/* Skip R11 */
76472758f3SLionel Sambuc	movq	%r12, 96(%rdi)
77472758f3SLionel Sambuc	movq	%r13, 104(%rdi)
78472758f3SLionel Sambuc	movq	%r14, 112(%rdi)
79472758f3SLionel Sambuc	movq	%r15, 120(%rdi)
80472758f3SLionel Sambuc	movq	(%rsp), %rax
81472758f3SLionel Sambuc	movq	%rax, 128(%rdi)
82472758f3SLionel Sambuc	ret
83472758f3SLionel Sambuc
84472758f3SLionel Sambuc	.hidden _ZNK7_Unwind16Registers_x86_646jumptoEv
85472758f3SLionel SambucENTRY(_ZNK7_Unwind16Registers_x86_646jumptoEv)
86472758f3SLionel Sambuc	/* RDI == this */
87472758f3SLionel Sambuc	movq	56(%rdi), %rax
88472758f3SLionel Sambuc	subq	$8, %rax	/* Reserve space on new stack for RIP */
89472758f3SLionel Sambuc	movq	128(%rdi), %rbx	/* Load new RIP */
90472758f3SLionel Sambuc	movq	%rbx, 0(%rax)	/* ...and save it on the new stack */
91472758f3SLionel Sambuc	pushq	%rax		/* Save new stack pointer on old stack */
92472758f3SLionel Sambuc	/* New stack is prepared, now restore all registers */
93472758f3SLionel Sambuc	movq	0(%rdi), %rax
94472758f3SLionel Sambuc	movq	8(%rdi), %rdx
95472758f3SLionel Sambuc	movq	16(%rdi), %rcx
96472758f3SLionel Sambuc	movq	24(%rdi), %rbx
97472758f3SLionel Sambuc	movq	32(%rdi), %rsi
98472758f3SLionel Sambuc	/* RDI restored later as it is still used as index register */
99472758f3SLionel Sambuc	movq	48(%rdi), %rbp
100472758f3SLionel Sambuc	/* RSP is restored later */
101472758f3SLionel Sambuc	movq	64(%rdi), %r8
102472758f3SLionel Sambuc	movq	72(%rdi), %r9
103472758f3SLionel Sambuc	movq	80(%rdi), %r10
104472758f3SLionel Sambuc	movq	88(%rdi), %r11
105472758f3SLionel Sambuc	movq	96(%rdi), %r12
106472758f3SLionel Sambuc	movq	104(%rdi), %r13
107472758f3SLionel Sambuc	movq	112(%rdi), %r14
108472758f3SLionel Sambuc	movq	120(%rdi), %r15
109472758f3SLionel Sambuc	movq	40(%rdi), %rdi
110472758f3SLionel Sambuc	/* Now load new stack pointer pushed on the old stack earlier */
111472758f3SLionel Sambuc	popq	%rsp
112472758f3SLionel Sambuc	/* Return address is already on the new stack. */
113472758f3SLionel Sambuc	ret
114472758f3SLionel Sambuc#endif
115472758f3SLionel Sambuc
116472758f3SLionel Sambuc#ifdef __powerpc__
117472758f3SLionel Sambuc	.hidden _ZN7_Unwind15Registers_ppc32C1Ev
118472758f3SLionel SambucENTRY(_ZN7_Unwind15Registers_ppc32C1Ev)
119b029fb59SBen Gras	/* TODO: skip non-callee-safe registers */
120472758f3SLionel Sambuc	stw		 %r0,  0(%r3)
121472758f3SLionel Sambuc	stw		 %r1,  4(%r3)
122472758f3SLionel Sambuc	stw		 %r2,  8(%r3)
123472758f3SLionel Sambuc	stw		 %r3, 12(%r3)
124472758f3SLionel Sambuc	stw		 %r4, 16(%r3)
125472758f3SLionel Sambuc	stw		 %r5, 20(%r3)
126472758f3SLionel Sambuc	stw		 %r6, 24(%r3)
127472758f3SLionel Sambuc	stw		 %r7, 28(%r3)
128472758f3SLionel Sambuc	stw		 %r8, 32(%r3)
129472758f3SLionel Sambuc	stw		 %r9, 36(%r3)
130472758f3SLionel Sambuc	stw		%r10, 40(%r3)
131472758f3SLionel Sambuc	stw		%r11, 44(%r3)
132472758f3SLionel Sambuc	stw		%r12, 48(%r3)
133472758f3SLionel Sambuc	stw		%r13, 52(%r3)
134472758f3SLionel Sambuc	stw		%r14, 56(%r3)
135472758f3SLionel Sambuc	stw		%r15, 60(%r3)
136472758f3SLionel Sambuc	stw		%r16, 64(%r3)
137472758f3SLionel Sambuc	stw		%r17, 68(%r3)
138472758f3SLionel Sambuc	stw		%r18, 72(%r3)
139472758f3SLionel Sambuc	stw		%r19, 76(%r3)
140472758f3SLionel Sambuc	stw		%r20, 80(%r3)
141472758f3SLionel Sambuc	stw		%r21, 84(%r3)
142472758f3SLionel Sambuc	stw		%r22, 88(%r3)
143472758f3SLionel Sambuc	stw		%r23, 92(%r3)
144472758f3SLionel Sambuc	stw		%r24, 96(%r3)
145472758f3SLionel Sambuc	stw		%r25,100(%r3)
146472758f3SLionel Sambuc	stw		%r26,104(%r3)
147472758f3SLionel Sambuc	stw		%r27,108(%r3)
148472758f3SLionel Sambuc	stw		%r28,112(%r3)
149472758f3SLionel Sambuc	stw		%r29,116(%r3)
150472758f3SLionel Sambuc	stw		%r30,120(%r3)
151472758f3SLionel Sambuc	stw		%r31,124(%r3)
152472758f3SLionel Sambuc	mflr		%r0
153b029fb59SBen Gras	stw		%r0, 136(%r3) /* SRR0 */
154b029fb59SBen Gras	mfcr		%r0
155b029fb59SBen Gras	stw		%r0, 132(%r3) /* CR */
156472758f3SLionel Sambuc
157b029fb59SBen Gras	stfd		 %f0, 144(%r3)
158b029fb59SBen Gras	stfd		 %f1, 152(%r3)
159b029fb59SBen Gras	stfd		 %f2, 160(%r3)
160b029fb59SBen Gras	stfd		 %f3, 168(%r3)
161b029fb59SBen Gras	stfd		 %f4, 176(%r3)
162b029fb59SBen Gras	stfd		 %f5, 184(%r3)
163b029fb59SBen Gras	stfd		 %f6, 192(%r3)
164b029fb59SBen Gras	stfd		 %f7, 200(%r3)
165b029fb59SBen Gras	stfd		 %f8, 208(%r3)
166b029fb59SBen Gras	stfd		 %f9, 216(%r3)
167b029fb59SBen Gras	stfd		%f10, 224(%r3)
168b029fb59SBen Gras	stfd		%f11, 232(%r3)
169b029fb59SBen Gras	stfd		%f12, 240(%r3)
170b029fb59SBen Gras	stfd		%f13, 248(%r3)
171b029fb59SBen Gras	stfd		%f14, 256(%r3)
172b029fb59SBen Gras	stfd		%f15, 264(%r3)
173b029fb59SBen Gras	stfd		%f16, 272(%r3)
174b029fb59SBen Gras	stfd		%f17, 280(%r3)
175b029fb59SBen Gras	stfd		%f18, 288(%r3)
176b029fb59SBen Gras	stfd		%f19, 296(%r3)
177b029fb59SBen Gras	stfd		%f20, 304(%r3)
178b029fb59SBen Gras	stfd		%f21, 312(%r3)
179b029fb59SBen Gras	stfd		%f22, 320(%r3)
180b029fb59SBen Gras	stfd		%f23, 328(%r3)
181b029fb59SBen Gras	stfd		%f24, 336(%r3)
182b029fb59SBen Gras	stfd		%f25, 344(%r3)
183b029fb59SBen Gras	stfd		%f26, 352(%r3)
184b029fb59SBen Gras	stfd		%f27, 360(%r3)
185b029fb59SBen Gras	stfd		%f28, 368(%r3)
186b029fb59SBen Gras	stfd		%f29, 376(%r3)
187b029fb59SBen Gras	stfd		%f30, 384(%r3)
188b029fb59SBen Gras	stfd		%f31, 392(%r3)
189b029fb59SBen Gras
190b029fb59SBen Gras	/* LR is undefined */
191472758f3SLionel Sambuc	blr
192472758f3SLionel Sambuc
193472758f3SLionel Sambuc	.hidden _ZNK7_Unwind15Registers_ppc326jumptoEv
194472758f3SLionel SambucENTRY(_ZNK7_Unwind15Registers_ppc326jumptoEv)
195b029fb59SBen Gras	lfd		 %f0, 144(%r3)
196b029fb59SBen Gras	lfd		 %f1, 152(%r3)
197b029fb59SBen Gras	lfd		 %f2, 160(%r3)
198b029fb59SBen Gras	lfd		 %f3, 168(%r3)
199b029fb59SBen Gras	lfd		 %f4, 176(%r3)
200b029fb59SBen Gras	lfd		 %f5, 184(%r3)
201b029fb59SBen Gras	lfd		 %f6, 192(%r3)
202b029fb59SBen Gras	lfd		 %f7, 200(%r3)
203b029fb59SBen Gras	lfd		 %f8, 208(%r3)
204b029fb59SBen Gras	lfd		 %f9, 216(%r3)
205b029fb59SBen Gras	lfd		%f10, 224(%r3)
206b029fb59SBen Gras	lfd		%f11, 232(%r3)
207b029fb59SBen Gras	lfd		%f12, 240(%r3)
208b029fb59SBen Gras	lfd		%f13, 248(%r3)
209b029fb59SBen Gras	lfd		%f14, 256(%r3)
210b029fb59SBen Gras	lfd		%f15, 264(%r3)
211b029fb59SBen Gras	lfd		%f16, 272(%r3)
212b029fb59SBen Gras	lfd		%f17, 280(%r3)
213b029fb59SBen Gras	lfd		%f18, 288(%r3)
214b029fb59SBen Gras	lfd		%f19, 296(%r3)
215b029fb59SBen Gras	lfd		%f20, 304(%r3)
216b029fb59SBen Gras	lfd		%f21, 312(%r3)
217b029fb59SBen Gras	lfd		%f22, 320(%r3)
218b029fb59SBen Gras	lfd		%f23, 328(%r3)
219b029fb59SBen Gras	lfd		%f24, 336(%r3)
220b029fb59SBen Gras	lfd		%f25, 344(%r3)
221b029fb59SBen Gras	lfd		%f26, 352(%r3)
222b029fb59SBen Gras	lfd		%f27, 360(%r3)
223b029fb59SBen Gras	lfd		%f28, 368(%r3)
224b029fb59SBen Gras	lfd		%f29, 376(%r3)
225b029fb59SBen Gras	lfd		%f30, 384(%r3)
226b029fb59SBen Gras	lfd		%f31, 392(%r3)
227b029fb59SBen Gras
228472758f3SLionel Sambuc	lwz		 %r2, 8(%r3)
229472758f3SLionel Sambuc	/* skip r3 for now */
230472758f3SLionel Sambuc	lwz		 %r4, 16(%r3)
231472758f3SLionel Sambuc	lwz		 %r5, 20(%r3)
232472758f3SLionel Sambuc	lwz		 %r6, 24(%r3)
233472758f3SLionel Sambuc	lwz		 %r7, 28(%r3)
234472758f3SLionel Sambuc	lwz		 %r8, 32(%r3)
235472758f3SLionel Sambuc	lwz		 %r9, 36(%r3)
236472758f3SLionel Sambuc	lwz		%r10, 40(%r3)
237472758f3SLionel Sambuc	lwz		%r11, 44(%r3)
238472758f3SLionel Sambuc	lwz		%r12, 48(%r3)
239472758f3SLionel Sambuc	lwz		%r13, 52(%r3)
240472758f3SLionel Sambuc	lwz		%r14, 56(%r3)
241472758f3SLionel Sambuc	lwz		%r15, 60(%r3)
242472758f3SLionel Sambuc	lwz		%r16, 64(%r3)
243472758f3SLionel Sambuc	lwz		%r17, 68(%r3)
244472758f3SLionel Sambuc	lwz		%r18, 72(%r3)
245472758f3SLionel Sambuc	lwz		%r19, 76(%r3)
246472758f3SLionel Sambuc	lwz		%r20, 80(%r3)
247472758f3SLionel Sambuc	lwz		%r21, 84(%r3)
248472758f3SLionel Sambuc	lwz		%r22, 88(%r3)
249472758f3SLionel Sambuc	lwz		%r23, 92(%r3)
250472758f3SLionel Sambuc	lwz		%r24, 96(%r3)
251472758f3SLionel Sambuc	lwz		%r25,100(%r3)
252472758f3SLionel Sambuc	lwz		%r26,104(%r3)
253472758f3SLionel Sambuc	lwz		%r27,108(%r3)
254472758f3SLionel Sambuc	lwz		%r28,112(%r3)
255472758f3SLionel Sambuc	lwz		%r29,116(%r3)
256472758f3SLionel Sambuc	lwz		%r30,120(%r3)
257472758f3SLionel Sambuc	lwz		%r31,124(%r3)
258472758f3SLionel Sambuc
259b029fb59SBen Gras	lwz		%r0, 128(%r3) /* LR */
260472758f3SLionel Sambuc	mtlr		%r0
261b029fb59SBen Gras	lwz		%r0, 132(%r3) /* CR */
262b029fb59SBen Gras	mtcr		%r0
263b029fb59SBen Gras	lwz		%r0, 136(%r3) /* SRR0 */
264472758f3SLionel Sambuc	mtctr		%r0
265472758f3SLionel Sambuc
266472758f3SLionel Sambuc	lwz		%r0,  0(%r3)   /* do r0 now */
267472758f3SLionel Sambuc	lwz		%r1,  4(%r3)   /* do sp now */
268472758f3SLionel Sambuc	lwz		%r3, 12(%r3)   /* do r3 last */
269472758f3SLionel Sambuc	bctr
270472758f3SLionel Sambuc#endif
271b029fb59SBen Gras
272*0a6a1f1dSLionel Sambuc#ifdef __aarch64__
273*0a6a1f1dSLionel Sambuc	.hidden _ZN7_Unwind17Registers_aarch64C1Ev
274*0a6a1f1dSLionel SambucENTRY(_ZN7_Unwind17Registers_aarch64C1Ev)
275*0a6a1f1dSLionel Sambuc	stp	x0, x1, [x0]
276*0a6a1f1dSLionel Sambuc	add	x0, x0, #16
277*0a6a1f1dSLionel Sambuc	stp	x2, x3, [x0], #16
278*0a6a1f1dSLionel Sambuc	stp	x4, x5, [x0], #16
279*0a6a1f1dSLionel Sambuc	stp	x6, x7, [x0], #16
280*0a6a1f1dSLionel Sambuc	stp	x8, x9, [x0], #16
281*0a6a1f1dSLionel Sambuc	stp	x10, x11, [x0], #16
282*0a6a1f1dSLionel Sambuc	stp	x12, x13, [x0], #16
283*0a6a1f1dSLionel Sambuc	stp	x14, x15, [x0], #16
284*0a6a1f1dSLionel Sambuc	stp	x16, x17, [x0], #16
285*0a6a1f1dSLionel Sambuc	stp	x18, x19, [x0], #16
286*0a6a1f1dSLionel Sambuc	stp	x20, x22, [x0], #16
287*0a6a1f1dSLionel Sambuc	stp	x22, x24, [x0], #16
288*0a6a1f1dSLionel Sambuc	stp	x24, x26, [x0], #16
289*0a6a1f1dSLionel Sambuc	stp	x26, x27, [x0], #16
290*0a6a1f1dSLionel Sambuc	stp	x28, x29, [x0], #16
291*0a6a1f1dSLionel Sambuc	mov	x1, sp
292*0a6a1f1dSLionel Sambuc	stp	x30, x1,  [x0], #16
293*0a6a1f1dSLionel Sambuc
294*0a6a1f1dSLionel Sambuc	add	x0, x0, #8
295*0a6a1f1dSLionel Sambuc	str	xzr, [x0], #8
296*0a6a1f1dSLionel Sambuc
297*0a6a1f1dSLionel Sambuc	stp	q0, q1, [x0], #64
298*0a6a1f1dSLionel Sambuc	stp	q2, q3, [x0], #64
299*0a6a1f1dSLionel Sambuc	stp	q4, q5, [x0], #64
300*0a6a1f1dSLionel Sambuc	stp	q6, q7, [x0], #64
301*0a6a1f1dSLionel Sambuc	stp	q8, q9, [x0], #64
302*0a6a1f1dSLionel Sambuc	stp	q10, q11, [x0], #64
303*0a6a1f1dSLionel Sambuc	stp	q12, q13, [x0], #64
304*0a6a1f1dSLionel Sambuc	stp	q14, q15, [x0], #64
305*0a6a1f1dSLionel Sambuc	stp	q16, q17, [x0], #64
306*0a6a1f1dSLionel Sambuc	stp	q18, q19, [x0], #64
307*0a6a1f1dSLionel Sambuc	stp	q20, q21, [x0], #64
308*0a6a1f1dSLionel Sambuc	stp	q22, q23, [x0], #64
309*0a6a1f1dSLionel Sambuc	stp	q24, q25, [x0], #64
310*0a6a1f1dSLionel Sambuc	stp	q26, q27, [x0], #64
311*0a6a1f1dSLionel Sambuc	stp	q28, q29, [x0], #64
312*0a6a1f1dSLionel Sambuc	stp	q30, q31, [x0], #64
313*0a6a1f1dSLionel Sambuc
314*0a6a1f1dSLionel Sambuc	ret
315*0a6a1f1dSLionel SambucEND(_ZN7_Unwind17Registers_aarch64C1Ev)
316*0a6a1f1dSLionel Sambuc
317*0a6a1f1dSLionel Sambuc	.hidden _ZNK7_Unwind17Registers_aarch646jumptoEv
318*0a6a1f1dSLionel SambucENTRY(_ZNK7_Unwind17Registers_aarch646jumptoEv)
319*0a6a1f1dSLionel Sambuc	ldp	x2, x3, [x0, #16]
320*0a6a1f1dSLionel Sambuc	ldp	x4, x6, [x0, #32]
321*0a6a1f1dSLionel Sambuc	ldp	x6, x7, [x0, #48]
322*0a6a1f1dSLionel Sambuc	ldp	x8, x9, [x0, #64]
323*0a6a1f1dSLionel Sambuc	ldp	x10, x11, [x0, #80]
324*0a6a1f1dSLionel Sambuc	ldp	x12, x13, [x0, #96]
325*0a6a1f1dSLionel Sambuc	ldp	x14, x16, [x0, #112]
326*0a6a1f1dSLionel Sambuc	ldp	x16, x17, [x0, #128]
327*0a6a1f1dSLionel Sambuc	ldp	x18, x19, [x0, #144]
328*0a6a1f1dSLionel Sambuc	ldp	x20, x21, [x0, #160]
329*0a6a1f1dSLionel Sambuc	ldp	x22, x23, [x0, #176]
330*0a6a1f1dSLionel Sambuc	ldp	x24, x26, [x0, #192]
331*0a6a1f1dSLionel Sambuc	ldp	x26, x27, [x0, #208]
332*0a6a1f1dSLionel Sambuc	ldp	x28, x29, [x0, #224]
333*0a6a1f1dSLionel Sambuc	ldp	x30, x1, [x0, #240]
334*0a6a1f1dSLionel Sambuc	mov	sp, x1
335*0a6a1f1dSLionel Sambuc
336*0a6a1f1dSLionel Sambuc	ldp	x0, x1, [x0, #0]
337*0a6a1f1dSLionel Sambuc	ret
338*0a6a1f1dSLionel SambucEND(_ZNK7_Unwind17Registers_aarch646jumptoEv)
339*0a6a1f1dSLionel Sambuc#endif /* __aarch64__ */
340*0a6a1f1dSLionel Sambuc
341b029fb59SBen Gras#if defined(__arm__)
342b029fb59SBen Gras	.fpu vfpv3
343b029fb59SBen Gras	.hidden _ZN7_Unwind15Registers_arm32C1Ev
344*0a6a1f1dSLionel SambucARM_ENTRY(_ZN7_Unwind15Registers_arm32C1Ev)
345b029fb59SBen Gras	stmia	r0, {r0-r14}
346b029fb59SBen Gras	str	lr, [r0, #60]	/* PC */
347b029fb59SBen Gras	mrs	r1, cpsr
348b029fb59SBen Gras	str	r1, [r0, #64]	/* CPSR */
349b029fb59SBen Gras	mov	r1, #0
350b029fb59SBen Gras	str	r1, [r0, #68]
351b029fb59SBen Gras	RET
352b029fb59SBen GrasEND(_ZN7_Unwind15Registers_arm32C1Ev)
353b029fb59SBen Gras
354b029fb59SBen Gras	.hidden _ZN7_Unwind15Registers_arm328lazyVFP1Ev
355*0a6a1f1dSLionel SambucARM_ENTRY(_ZN7_Unwind15Registers_arm328lazyVFP1Ev)
356b029fb59SBen Gras	add	r0, #72
357b029fb59SBen Gras	vstmia	r0, {d0-d15}
358b029fb59SBen Gras	RET
359b029fb59SBen GrasEND(_ZN7_Unwind15Registers_arm328lazyVFP1Ev)
360b029fb59SBen Gras
361b029fb59SBen Gras	.hidden _ZN7_Unwind15Registers_arm328lazyVFP3Ev
362*0a6a1f1dSLionel SambucARM_ENTRY(_ZN7_Unwind15Registers_arm328lazyVFP3Ev)
363b029fb59SBen Gras	add	r0, #200
364b029fb59SBen Gras	vstmia	r0, {d16-d31}
365b029fb59SBen Gras	RET
366b029fb59SBen GrasEND(_ZN7_Unwind15Registers_arm328lazyVFP3Ev)
367b029fb59SBen Gras
368b029fb59SBen Gras	.hidden _ZNK7_Unwind15Registers_arm326jumptoEv
369*0a6a1f1dSLionel SambucARM_ENTRY(_ZNK7_Unwind15Registers_arm326jumptoEv)
370b029fb59SBen Gras	ldrb	r1, [r0, #68]
371b029fb59SBen Gras	tst	r1, #1
372b029fb59SBen Gras	beq	.Lnovfp1
373b029fb59SBen Gras	add	r2, r0, #72
374b029fb59SBen Gras	vldmia	r2, {d0-d15}
375b029fb59SBen Gras.Lnovfp1:
376b029fb59SBen Gras	tst	r1, #2
377b029fb59SBen Gras	beq	.Lnovfp3
378b029fb59SBen Gras	add	r2, r0, #200
379b029fb59SBen Gras	vldmia	r2, {d16-d31}
380b029fb59SBen Gras.Lnovfp3:
381b029fb59SBen Gras	ldr	r1, [r0, #64]
382b029fb59SBen Gras	msr	cpsr_sxc, r1
383b029fb59SBen Gras	ldmia	r0, {r0-r15}
384b029fb59SBen GrasEND(_ZNK7_Unwind15Registers_arm326jumptoEv)
385b029fb59SBen Gras#endif
386b029fb59SBen Gras
387b029fb59SBen Gras#if defined(__vax__)
388b029fb59SBen Gras	.hidden _ZN7_Unwind13Registers_vaxC1Ev
389b029fb59SBen GrasENTRY(_ZN7_Unwind13Registers_vaxC1Ev, R0)
390b029fb59SBen Gras	subl2	$4, %sp
391b029fb59SBen Gras	movl	4(%ap), %r0
392b029fb59SBen Gras	movl	 %r1,  4(%r0)
393b029fb59SBen Gras	movl	 %r2,  8(%r0)
394b029fb59SBen Gras	movl	 %r3, 12(%r0)
395b029fb59SBen Gras	movl	 %r4, 16(%r0)
396b029fb59SBen Gras	movl	 %r5, 20(%r0)
397b029fb59SBen Gras	movl	 %r6, 24(%r0)
398b029fb59SBen Gras	movl	 %r7, 28(%r0)
399b029fb59SBen Gras	movl	 %r8, 32(%r0)
400b029fb59SBen Gras	movl	 %r9, 36(%r0)
401b029fb59SBen Gras	movl	%r10, 40(%r0)
402b029fb59SBen Gras	movl	%r11, 44(%r0)
403b029fb59SBen Gras	movl	8(%fp), 48(%r0)
404b029fb59SBen Gras	movl	12(%fp), 52(%r0)
405b029fb59SBen Gras	addl3	$36, %sp, 56(%r0)
406b029fb59SBen Gras	/* Return PC */
407b029fb59SBen Gras	movl	16(%fp), 60(%r0)
408b029fb59SBen Gras	/* Load saved value of r0 as r1 */
409b029fb59SBen Gras	movl	20(%fp), 0(%r0)
410b029fb59SBen Gras	/* Saved PSW */
411b029fb59SBen Gras	movl	4(%fp), 64(%r0)
412b029fb59SBen Gras	ret
413b029fb59SBen GrasEND(_ZN7_Unwind13Registers_vaxC1Ev)
414b029fb59SBen Gras
415b029fb59SBen Gras	.hidden _ZNK7_Unwind13Registers_vax6jumptoEv
416b029fb59SBen GrasENTRY(_ZNK7_Unwind13Registers_vax6jumptoEv, 0)
417b029fb59SBen Gras	subl2	$4, %sp
418b029fb59SBen Gras	movl	 4(%ap),  %r0
419b029fb59SBen Gras	movl	 4(%r0),  %r1
420b029fb59SBen Gras	movl	 8(%r0),  %r2
421b029fb59SBen Gras	movl	12(%r0),  %r3
422b029fb59SBen Gras	movl	16(%r0),  %r4
423b029fb59SBen Gras	movl	20(%r0),  %r5
424b029fb59SBen Gras	movl	24(%r0),  %r6
425b029fb59SBen Gras	movl	28(%r0),  %r7
426b029fb59SBen Gras	movl	32(%r0),  %r8
427b029fb59SBen Gras	movl	36(%r0),  %r9
428b029fb59SBen Gras	movl	40(%r0), %r10
429b029fb59SBen Gras	movl	44(%r0), %r11
430b029fb59SBen Gras	movl	48(%r0), %r12
431b029fb59SBen Gras	movl	52(%r0), %r13
432b029fb59SBen Gras	movl	56(%r0), %r14
433b029fb59SBen Gras	movl	60(%r0), -(%sp)
434b029fb59SBen Gras	movl	0(%r0), %r0
435b029fb59SBen Gras	/* XXX restore PSW */
436b029fb59SBen Gras	rsb
437b029fb59SBen GrasEND(_ZNK7_Unwind13Registers_vax6jumptoEv)
438b029fb59SBen Gras#endif
439b029fb59SBen Gras
440b029fb59SBen Gras#if defined(__m68k__)
441b029fb59SBen GrasENTRY(_ZN7_Unwind14Registers_M68KC1Ev)
442b029fb59SBen Gras	move.l	4(%sp), %a0
443b029fb59SBen Gras	movem.l	%d0-%d7/%a0-%a7, (%a0)
444b029fb59SBen Gras	fmovem	%fp0-%fp7, 72(%a0)
445b029fb59SBen Gras	move.l	0(%sp), %a1
446b029fb59SBen Gras	move.l	%a1, 64(%a0)
447b029fb59SBen Gras	addq.l	#4, 60(%a0)
448b029fb59SBen Gras	rts
449b029fb59SBen GrasEND(_ZN7_Unwind14Registers_M68KC1Ev)
450b029fb59SBen Gras
451b029fb59SBen GrasENTRY(_ZNK7_Unwind14Registers_M68K6jumptoEv)
452b029fb59SBen Gras	move.l	4(%sp), %a0
453b029fb59SBen Gras	subq.l	#4, 60(%a0)
454b029fb59SBen Gras	move.l	64(%a0), %a1
455b029fb59SBen Gras	move.l	60(%a0), %a2
456b029fb59SBen Gras	move.l	%a1, (%a2)
457b029fb59SBen Gras	fmovem	72(%a0), %fp0-%fp7
458b029fb59SBen Gras	movem.l	(%a0), %d0-%d7/%a0-%a7
459b029fb59SBen Gras	rts
460b029fb59SBen GrasEND(_ZNK7_Unwind14Registers_M68K6jumptoEv)
461b029fb59SBen Gras#endif
462b029fb59SBen Gras
463b029fb59SBen Gras#if defined(__sh3__)
464b029fb59SBen Gras	.hidden _ZN7_Unwind13Registers_SH3C1Ev
465b029fb59SBen GrasENTRY(_ZN7_Unwind13Registers_SH3C1Ev)
466b029fb59SBen Gras	add	#64, r4
467b029fb59SBen Gras	mov.l	r8, @-r15
468b029fb59SBen Gras	sts.l	pr, @-r15
469b029fb59SBen Gras	mov.l	@r15+, r8
470b029fb59SBen Gras	mov.l	r8, @r4
471b029fb59SBen Gras	mov.l	@r15+, r8
472b029fb59SBen Gras
473b029fb59SBen Gras	mov.l   r15, @-r4
474b029fb59SBen Gras	mov.l	r14, @-r4
475b029fb59SBen Gras	mov.l	r13, @-r4
476b029fb59SBen Gras	mov.l	r12, @-r4
477b029fb59SBen Gras	mov.l	r11, @-r4
478b029fb59SBen Gras	mov.l	r10, @-r4
479b029fb59SBen Gras	mov.l	r9, @-r4
480b029fb59SBen Gras	mov.l	r8, @-r4
481b029fb59SBen Gras	mov.l	r7, @-r4
482b029fb59SBen Gras	mov.l	r6, @-r4
483b029fb59SBen Gras	mov.l	r5, @-r4
484b029fb59SBen Gras	add	#-4, r4
485b029fb59SBen Gras	mov.l	r3, @-r4
486b029fb59SBen Gras	mov.l	r2, @-r4
487b029fb59SBen Gras	mov.l	r1, @-r4
488b029fb59SBen Gras	mov.l	r0, @-r4
489b029fb59SBen Gras	rts
490b029fb59SBen Gras	  mov.l	r4, @(16,r4)
491b029fb59SBen GrasSET_ENTRY_SIZE(_ZN7_Unwind13Registers_SH3C1Ev)
492b029fb59SBen Gras
493b029fb59SBen Gras	.hidden _ZNK7_Unwind13Registers_SH36jumptoEv
494b029fb59SBen GrasENTRY(_ZNK7_Unwind13Registers_SH36jumptoEv)
495b029fb59SBen Gras	mov	r4, r0
496b029fb59SBen Gras	add	#4, r0
497b029fb59SBen Gras	mov.l	@r0+, r1
498b029fb59SBen Gras	mov.l	@r0+, r2
499b029fb59SBen Gras	mov.l	@r0+, r3
500b029fb59SBen Gras	mov.l	@r0+, r4
501b029fb59SBen Gras	mov.l	@r0+, r5
502b029fb59SBen Gras	mov.l	@r0+, r6
503b029fb59SBen Gras	mov.l	@r0+, r7
504b029fb59SBen Gras	mov.l	@r0+, r8
505b029fb59SBen Gras	mov.l	@r0+, r9
506b029fb59SBen Gras	mov.l	@r0+, r10
507b029fb59SBen Gras	mov.l	@r0+, r11
508b029fb59SBen Gras	mov.l	@r0+, r12
509b029fb59SBen Gras	mov.l	@r0+, r13
510b029fb59SBen Gras	mov.l	@(12, r0), r14
511b029fb59SBen Gras	lds	r14, pr
512b029fb59SBen Gras	mov.l	@r0+, r14
513b029fb59SBen Gras	mov.l	@r0+, r15
514b029fb59SBen Gras	mov.l	@r0, r0
515b029fb59SBen Gras	jmp	@r0
516b029fb59SBen Gras	  nop
517b029fb59SBen GrasSET_ENTRY_SIZE(_ZNK7_Unwind13Registers_SH36jumptoEv)
518b029fb59SBen Gras#endif
519b029fb59SBen Gras
520b029fb59SBen Gras#if defined(__sparc64__)
521b029fb59SBen Gras#include <machine/trap.h>
522b029fb59SBen Gras	.register %g2, #ignore
523b029fb59SBen Gras	.register %g3, #ignore
524b029fb59SBen Gras	.register %g6, #ignore
525b029fb59SBen Gras	.register %g7, #ignore
526b029fb59SBen Gras	.hidden _ZN7_Unwind17Registers_SPARC64C1Ev
527b029fb59SBen GrasENTRY(_ZN7_Unwind17Registers_SPARC64C1Ev)
528b029fb59SBen Gras	t	ST_FLUSHWIN
529b029fb59SBen Gras	stx	%g0, [%o0 + 0]
530b029fb59SBen Gras	stx	%g1, [%o0 + 8]
531b029fb59SBen Gras	stx	%g2, [%o0 + 16]
532b029fb59SBen Gras	stx	%g3, [%o0 + 24]
533b029fb59SBen Gras	stx	%g4, [%o0 + 32]
534b029fb59SBen Gras	stx	%g5, [%o0 + 40]
535b029fb59SBen Gras	stx	%g6, [%o0 + 48]
536b029fb59SBen Gras	stx	%g7, [%o0 + 56]
537b029fb59SBen Gras	stx	%o0, [%o0 + 64]
538b029fb59SBen Gras	stx	%o1, [%o0 + 72]
539b029fb59SBen Gras	stx	%o2, [%o0 + 80]
540b029fb59SBen Gras	stx	%o3, [%o0 + 88]
541b029fb59SBen Gras	stx	%o4, [%o0 + 96]
542b029fb59SBen Gras	stx	%o5, [%o0 + 104]
543b029fb59SBen Gras	stx	%o6, [%o0 + 112]
544b029fb59SBen Gras	stx	%o7, [%o0 + 120]
545b029fb59SBen Gras	stx	%l0, [%o0 + 128]
546b029fb59SBen Gras	stx	%l1, [%o0 + 136]
547b029fb59SBen Gras	stx	%l2, [%o0 + 144]
548b029fb59SBen Gras	stx	%l3, [%o0 + 152]
549b029fb59SBen Gras	stx	%l4, [%o0 + 160]
550b029fb59SBen Gras	stx	%l5, [%o0 + 168]
551b029fb59SBen Gras	stx	%l6, [%o0 + 176]
552b029fb59SBen Gras	stx	%l7, [%o0 + 184]
553b029fb59SBen Gras	stx	%i0, [%o0 + 192]
554b029fb59SBen Gras	stx	%i1, [%o0 + 200]
555b029fb59SBen Gras	stx	%i2, [%o0 + 208]
556b029fb59SBen Gras	stx	%i3, [%o0 + 216]
557b029fb59SBen Gras	stx	%i4, [%o0 + 224]
558b029fb59SBen Gras	stx	%i5, [%o0 + 232]
559b029fb59SBen Gras	stx	%i6, [%o0 + 240]
560b029fb59SBen Gras	stx	%i7, [%o0 + 248]
561b029fb59SBen Gras	add	%o7, 8, %g1
562b029fb59SBen Gras	retl
563b029fb59SBen Gras	 stx	%g1, [%o0 + 256]
564b029fb59SBen GrasEND(_ZN7_Unwind17Registers_SPARC64C1Ev)
565b029fb59SBen Gras
566b029fb59SBen Gras	.hidden _ZNK7_Unwind17Registers_SPARC646jumptoEv
567b029fb59SBen GrasENTRY(_ZNK7_Unwind17Registers_SPARC646jumptoEv)
568b029fb59SBen Gras	t	ST_FLUSHWIN
569b029fb59SBen Gras	ldx	[%o0 + 0], %g0
570b029fb59SBen Gras	ldx	[%o0 + 8], %g1
571b029fb59SBen Gras	ldx	[%o0 + 16], %g2
572b029fb59SBen Gras	ldx	[%o0 + 24], %g3
573b029fb59SBen Gras	ldx	[%o0 + 32], %g4
574b029fb59SBen Gras	ldx	[%o0 + 40], %g5
575b029fb59SBen Gras	ldx	[%o0 + 48], %g6
576b029fb59SBen Gras	ldx	[%o0 + 56], %g7
577b029fb59SBen Gras	ldx	[%o0 + 72], %o1
578b029fb59SBen Gras	ldx	[%o0 + 80], %o2
579b029fb59SBen Gras	ldx	[%o0 + 88], %o3
580b029fb59SBen Gras	ldx	[%o0 + 96], %o4
581b029fb59SBen Gras	ldx	[%o0 + 104], %o5
582b029fb59SBen Gras	ldx	[%o0 + 112], %g1
583b029fb59SBen Gras	sub	%g1, 2047, %o6
584b029fb59SBen Gras	ldx	[%o0 + 120], %o7
585b029fb59SBen Gras	ldx	[%o0 + 128], %l0
586b029fb59SBen Gras	ldx	[%o0 + 136], %l1
587b029fb59SBen Gras	ldx	[%o0 + 144], %l2
588b029fb59SBen Gras	ldx	[%o0 + 152], %l3
589b029fb59SBen Gras	ldx	[%o0 + 160], %l4
590b029fb59SBen Gras	ldx	[%o0 + 168], %l5
591b029fb59SBen Gras	ldx	[%o0 + 176], %l6
592b029fb59SBen Gras	ldx	[%o0 + 184], %l7
593b029fb59SBen Gras	ldx	[%o0 + 192], %i0
594b029fb59SBen Gras	ldx	[%o0 + 200], %i1
595b029fb59SBen Gras	ldx	[%o0 + 208], %i2
596b029fb59SBen Gras	ldx	[%o0 + 216], %i3
597b029fb59SBen Gras	ldx	[%o0 + 224], %i4
598b029fb59SBen Gras	ldx	[%o0 + 232], %i5
599b029fb59SBen Gras	ldx	[%o0 + 240], %i6
600b029fb59SBen Gras	ldx	[%o0 + 248], %i7
601b029fb59SBen Gras	ldx	[%o0 + 256], %g1
602b029fb59SBen Gras	jmpl	%g1, %g0
603b029fb59SBen Gras	  ldx	[%o0 + 64], %o0
604b029fb59SBen GrasEND(_ZNK7_Unwind17Registers_SPARC646jumptoEv)
605b029fb59SBen Gras#elif defined(__sparc__)
606b029fb59SBen Gras#include <machine/trap.h>
607b029fb59SBen Gras
608b029fb59SBen Gras	.hidden _ZN7_Unwind15Registers_SPARCC1Ev
609b029fb59SBen GrasENTRY(_ZN7_Unwind15Registers_SPARCC1Ev)
610b029fb59SBen Gras	t	ST_FLUSHWIN
611b029fb59SBen Gras	st	%g0, [%o0 + 0]
612b029fb59SBen Gras	st	%g1, [%o0 + 4]
613b029fb59SBen Gras	st	%g2, [%o0 + 8]
614b029fb59SBen Gras	st	%g3, [%o0 + 12]
615b029fb59SBen Gras	st	%g4, [%o0 + 16]
616b029fb59SBen Gras	st	%g5, [%o0 + 20]
617b029fb59SBen Gras	st	%g6, [%o0 + 24]
618b029fb59SBen Gras	st	%g7, [%o0 + 28]
619b029fb59SBen Gras	st	%o0, [%o0 + 32]
620b029fb59SBen Gras	st	%o1, [%o0 + 36]
621b029fb59SBen Gras	st	%o2, [%o0 + 40]
622b029fb59SBen Gras	st	%o3, [%o0 + 44]
623b029fb59SBen Gras	st	%o4, [%o0 + 48]
624b029fb59SBen Gras	st	%o5, [%o0 + 52]
625b029fb59SBen Gras	st	%o6, [%o0 + 56]
626b029fb59SBen Gras	st	%o7, [%o0 + 60]
627b029fb59SBen Gras	st	%l0, [%o0 + 64]
628b029fb59SBen Gras	st	%l1, [%o0 + 68]
629b029fb59SBen Gras	st	%l2, [%o0 + 72]
630b029fb59SBen Gras	st	%l3, [%o0 + 76]
631b029fb59SBen Gras	st	%l4, [%o0 + 80]
632b029fb59SBen Gras	st	%l5, [%o0 + 84]
633b029fb59SBen Gras	st	%l6, [%o0 + 88]
634b029fb59SBen Gras	st	%l7, [%o0 + 92]
635b029fb59SBen Gras	st	%i0, [%o0 + 96]
636b029fb59SBen Gras	st	%i1, [%o0 + 100]
637b029fb59SBen Gras	st	%i2, [%o0 + 104]
638b029fb59SBen Gras	st	%i3, [%o0 + 108]
639b029fb59SBen Gras	st	%i4, [%o0 + 112]
640b029fb59SBen Gras	st	%i5, [%o0 + 116]
641b029fb59SBen Gras	st	%i6, [%o0 + 120]
642b029fb59SBen Gras	st	%i7, [%o0 + 124 ]
643b029fb59SBen Gras	add	%o7, 8, %g1
644b029fb59SBen Gras	retl
645b029fb59SBen Gras	 st	%g1, [%o0 + 128]
646b029fb59SBen GrasEND(_ZN7_Unwind15Registers_SPARCC1Ev)
647b029fb59SBen Gras
648b029fb59SBen Gras	.hidden _ZNK7_Unwind15Registers_SPARC6jumptoEv
649b029fb59SBen GrasENTRY(_ZNK7_Unwind15Registers_SPARC6jumptoEv)
650b029fb59SBen Gras	t	ST_FLUSHWIN
651b029fb59SBen Gras	ld	[%o0 + 0], %g0
652b029fb59SBen Gras	ld	[%o0 + 4], %g1
653b029fb59SBen Gras	ld	[%o0 + 8], %g2
654b029fb59SBen Gras	ld	[%o0 + 12], %g3
655b029fb59SBen Gras	ld	[%o0 + 16], %g4
656b029fb59SBen Gras	ld	[%o0 + 20], %g5
657b029fb59SBen Gras	ld	[%o0 + 24], %g6
658b029fb59SBen Gras	ld	[%o0 + 28], %g7
659b029fb59SBen Gras	ld	[%o0 + 36], %o1
660b029fb59SBen Gras	ld	[%o0 + 40], %o2
661b029fb59SBen Gras	ld	[%o0 + 44], %o3
662b029fb59SBen Gras	ld	[%o0 + 48], %o4
663b029fb59SBen Gras	ld	[%o0 + 52], %o5
664b029fb59SBen Gras	ld	[%o0 + 56], %o6
665b029fb59SBen Gras	ld	[%o0 + 60], %o7
666b029fb59SBen Gras	ld	[%o0 + 64], %l0
667b029fb59SBen Gras	ld	[%o0 + 68], %l1
668b029fb59SBen Gras	ld	[%o0 + 72], %l2
669b029fb59SBen Gras	ld	[%o0 + 76], %l3
670b029fb59SBen Gras	ld	[%o0 + 80], %l4
671b029fb59SBen Gras	ld	[%o0 + 84], %l5
672b029fb59SBen Gras	ld	[%o0 + 88], %l6
673b029fb59SBen Gras	ld	[%o0 + 92], %l7
674b029fb59SBen Gras	ld	[%o0 + 96], %i0
675b029fb59SBen Gras	ld	[%o0 + 100], %i1
676b029fb59SBen Gras	ld	[%o0 + 104], %i2
677b029fb59SBen Gras	ld	[%o0 + 108], %i3
678b029fb59SBen Gras	ld	[%o0 + 112], %i4
679b029fb59SBen Gras	ld	[%o0 + 116], %i5
680b029fb59SBen Gras	ld	[%o0 + 120], %i6
681b029fb59SBen Gras	ld	[%o0 + 124], %i7
682b029fb59SBen Gras	ld	[%o0 + 128], %g1
683b029fb59SBen Gras	jmpl	%g1, %g0
684b029fb59SBen Gras	  ld	[%o0 + 32], %o0
685b029fb59SBen GrasEND(_ZNK7_Unwind15Registers_SPARC6jumptoEv)
686b029fb59SBen Gras#endif
687b029fb59SBen Gras
688b029fb59SBen Gras#if defined(__alpha__)
689b029fb59SBen Gras	.set nomacro
690b029fb59SBen Gras	.set noat
691b029fb59SBen Gras	.hidden _ZN7_Unwind15Registers_AlphaC1Ev
692b029fb59SBen GrasLEAF_NOPROFILE(_ZN7_Unwind15Registers_AlphaC1Ev, 1)
693b029fb59SBen Gras	stq $0, 0($16)
694b029fb59SBen Gras	stq $1, 8($16)
695b029fb59SBen Gras	stq $2, 16($16)
696b029fb59SBen Gras	stq $3, 24($16)
697b029fb59SBen Gras	stq $4, 32($16)
698b029fb59SBen Gras	stq $5, 40($16)
699b029fb59SBen Gras	stq $6, 48($16)
700b029fb59SBen Gras	stq $7, 56($16)
701b029fb59SBen Gras	stq $8, 64($16)
702b029fb59SBen Gras	stq $9, 72($16)
703b029fb59SBen Gras	stq $10, 80($16)
704b029fb59SBen Gras	stq $11, 88($16)
705b029fb59SBen Gras	stq $12, 96($16)
706b029fb59SBen Gras	stq $13, 104($16)
707b029fb59SBen Gras	stq $14, 112($16)
708b029fb59SBen Gras	stq $15, 120($16)
709b029fb59SBen Gras	stq $16, 128($16)
710b029fb59SBen Gras	stq $17, 136($16)
711b029fb59SBen Gras	stq $18, 144($16)
712b029fb59SBen Gras	stq $19, 152($16)
713b029fb59SBen Gras	stq $20, 160($16)
714b029fb59SBen Gras	stq $21, 168($16)
715b029fb59SBen Gras	stq $22, 176($16)
716b029fb59SBen Gras	stq $23, 184($16)
717b029fb59SBen Gras	stq $24, 192($16)
718b029fb59SBen Gras	stq $25, 200($16)
719b029fb59SBen Gras	stq $26, 208($16)
720b029fb59SBen Gras	stq $27, 216($16)
721b029fb59SBen Gras	stq $28, 224($16)
722b029fb59SBen Gras	stq $29, 232($16)
723b029fb59SBen Gras	stq $30, 240($16)
724b029fb59SBen Gras	stq $26, 248($16)
725b029fb59SBen Gras
726b029fb59SBen Gras	stt $f0, 256($16)
727b029fb59SBen Gras	stt $f1, 264($16)
728b029fb59SBen Gras	stt $f2, 272($16)
729b029fb59SBen Gras	stt $f3, 280($16)
730b029fb59SBen Gras	stt $f4, 288($16)
731b029fb59SBen Gras	stt $f5, 296($16)
732b029fb59SBen Gras	stt $f6, 304($16)
733b029fb59SBen Gras	stt $f7, 312($16)
734b029fb59SBen Gras	stt $f8, 320($16)
735b029fb59SBen Gras	stt $f9, 328($16)
736b029fb59SBen Gras	stt $f10, 336($16)
737b029fb59SBen Gras	stt $f11, 344($16)
738b029fb59SBen Gras	stt $f12, 352($16)
739b029fb59SBen Gras	stt $f13, 360($16)
740b029fb59SBen Gras	stt $f14, 368($16)
741b029fb59SBen Gras	stt $f15, 376($16)
742b029fb59SBen Gras	stt $f16, 384($16)
743b029fb59SBen Gras	stt $f17, 392($16)
744b029fb59SBen Gras	stt $f18, 400($16)
745b029fb59SBen Gras	stt $f19, 408($16)
746b029fb59SBen Gras	stt $f20, 416($16)
747b029fb59SBen Gras	stt $f21, 424($16)
748b029fb59SBen Gras	stt $f22, 432($16)
749b029fb59SBen Gras	stt $f23, 440($16)
750b029fb59SBen Gras	stt $f24, 448($16)
751b029fb59SBen Gras	stt $f25, 456($16)
752b029fb59SBen Gras	stt $f26, 464($16)
753b029fb59SBen Gras	stt $f27, 472($16)
754b029fb59SBen Gras	stt $f28, 480($16)
755b029fb59SBen Gras	stt $f29, 488($16)
756b029fb59SBen Gras	stt $f30, 496($16)
757b029fb59SBen Gras	ret $31, ($26), 1
758b029fb59SBen GrasEND(_ZN7_Unwind15Registers_AlphaC1Ev)
759b029fb59SBen Gras
760b029fb59SBen Gras	.set nomacro
761b029fb59SBen Gras	.set noat
762b029fb59SBen Gras	.hidden _ZNK7_Unwind15Registers_Alpha6jumptoEv
763b029fb59SBen GrasLEAF_NOPROFILE(_ZNK7_Unwind15Registers_Alpha6jumptoEv, 1)
764b029fb59SBen Gras	ldq $0, 0($16)
765b029fb59SBen Gras	ldq $1, 8($16)
766b029fb59SBen Gras	ldq $2, 16($16)
767b029fb59SBen Gras	ldq $3, 24($16)
768b029fb59SBen Gras	ldq $4, 32($16)
769b029fb59SBen Gras	ldq $5, 40($16)
770b029fb59SBen Gras	ldq $6, 48($16)
771b029fb59SBen Gras	ldq $7, 56($16)
772b029fb59SBen Gras	ldq $8, 64($16)
773b029fb59SBen Gras	ldq $9, 72($16)
774b029fb59SBen Gras	ldq $10, 80($16)
775b029fb59SBen Gras	ldq $11, 88($16)
776b029fb59SBen Gras	ldq $12, 96($16)
777b029fb59SBen Gras	ldq $13, 104($16)
778b029fb59SBen Gras	ldq $14, 112($16)
779b029fb59SBen Gras	ldq $15, 120($16)
780b029fb59SBen Gras	ldq $17, 136($16)
781b029fb59SBen Gras	ldq $18, 144($16)
782b029fb59SBen Gras	ldq $19, 152($16)
783b029fb59SBen Gras	ldq $20, 160($16)
784b029fb59SBen Gras	ldq $21, 168($16)
785b029fb59SBen Gras	ldq $22, 176($16)
786b029fb59SBen Gras	ldq $23, 184($16)
787b029fb59SBen Gras	ldq $24, 192($16)
788b029fb59SBen Gras	ldq $25, 200($16)
789b029fb59SBen Gras	ldq $27, 216($16)
790b029fb59SBen Gras	ldq $28, 224($16)
791b029fb59SBen Gras	ldq $29, 232($16)
792b029fb59SBen Gras	ldq $30, 240($16)
793b029fb59SBen Gras	ldq $26, 248($16)
794b029fb59SBen Gras
795b029fb59SBen Gras	ldt $f0, 256($16)
796b029fb59SBen Gras	ldt $f1, 264($16)
797b029fb59SBen Gras	ldt $f2, 272($16)
798b029fb59SBen Gras	ldt $f3, 280($16)
799b029fb59SBen Gras	ldt $f4, 288($16)
800b029fb59SBen Gras	ldt $f5, 296($16)
801b029fb59SBen Gras	ldt $f6, 304($16)
802b029fb59SBen Gras	ldt $f7, 312($16)
803b029fb59SBen Gras	ldt $f8, 320($16)
804b029fb59SBen Gras	ldt $f9, 328($16)
805b029fb59SBen Gras	ldt $f10, 336($16)
806b029fb59SBen Gras	ldt $f11, 344($16)
807b029fb59SBen Gras	ldt $f12, 352($16)
808b029fb59SBen Gras	ldt $f13, 360($16)
809b029fb59SBen Gras	ldt $f14, 368($16)
810b029fb59SBen Gras	ldt $f15, 376($16)
811b029fb59SBen Gras	ldt $f16, 384($16)
812b029fb59SBen Gras	ldt $f17, 392($16)
813b029fb59SBen Gras	ldt $f18, 400($16)
814b029fb59SBen Gras	ldt $f19, 408($16)
815b029fb59SBen Gras	ldt $f20, 416($16)
816b029fb59SBen Gras	ldt $f21, 424($16)
817b029fb59SBen Gras	ldt $f22, 432($16)
818b029fb59SBen Gras	ldt $f23, 440($16)
819b029fb59SBen Gras	ldt $f24, 448($16)
820b029fb59SBen Gras	ldt $f25, 456($16)
821b029fb59SBen Gras	ldt $f26, 464($16)
822b029fb59SBen Gras	ldt $f27, 472($16)
823b029fb59SBen Gras	ldt $f28, 480($16)
824b029fb59SBen Gras	ldt $f29, 488($16)
825b029fb59SBen Gras	ldt $f30, 496($16)
826b029fb59SBen Gras	ldq $16, 128($16)
827b029fb59SBen Gras	ret $31, ($26), 1
828b029fb59SBen GrasEND(_ZNK7_Unwind15Registers_Alpha6jumptoEv)
829b029fb59SBen Gras#endif
830b029fb59SBen Gras
831b029fb59SBen Gras#if defined(__mips_n64) || defined(__mips_n32)
832b029fb59SBen Gras	.set noat
833b029fb59SBen GrasLEAF(_ZN7_Unwind16Registers_MIPS64C1Ev)
834b029fb59SBen Gras#if 0
835b029fb59SBen Gras	FP_S	$f0, 256($4)
836b029fb59SBen Gras	FP_S	$f1, 264($4)
837b029fb59SBen Gras	FP_S	$f2, 272($4)
838b029fb59SBen Gras	FP_S	$f3, 280($4)
839b029fb59SBen Gras	FP_S	$f4, 288($4)
840b029fb59SBen Gras	FP_S	$f5, 296($4)
841b029fb59SBen Gras	FP_S	$f6, 304($4)
842b029fb59SBen Gras	FP_S	$f7, 312($4)
843b029fb59SBen Gras	FP_S	$f8, 320($4)
844b029fb59SBen Gras	FP_S	$f9, 328($4)
845b029fb59SBen Gras	FP_S	$f10, 336($4)
846b029fb59SBen Gras	FP_S	$f11, 344($4)
847b029fb59SBen Gras	FP_S	$f12, 352($4)
848b029fb59SBen Gras	FP_S	$f13, 360($4)
849b029fb59SBen Gras	FP_S	$f14, 368($4)
850b029fb59SBen Gras	FP_S	$f15, 376($4)
851b029fb59SBen Gras	FP_S	$f16, 384($4)
852b029fb59SBen Gras	FP_S	$f17, 392($4)
853b029fb59SBen Gras	FP_S	$f18, 400($4)
854b029fb59SBen Gras	FP_S	$f19, 408($4)
855b029fb59SBen Gras	FP_S	$f20, 416($4)
856b029fb59SBen Gras	FP_S	$f21, 424($4)
857b029fb59SBen Gras	FP_S	$f22, 432($4)
858b029fb59SBen Gras	FP_S	$f23, 440($4)
859b029fb59SBen Gras	FP_S	$f24, 448($4)
860b029fb59SBen Gras	FP_S	$f25, 456($4)
861b029fb59SBen Gras	FP_S	$f26, 464($4)
862b029fb59SBen Gras	FP_S	$f27, 472($4)
863b029fb59SBen Gras	FP_S	$f28, 480($4)
864b029fb59SBen Gras	FP_S	$f29, 488($4)
865b029fb59SBen Gras	FP_S	$f30, 496($4)
866b029fb59SBen Gras	FP_S	$f31, 504($4)
867b029fb59SBen Gras#endif
868b029fb59SBen Gras	sd	$31, 0($4)
869b029fb59SBen Gras	sd	$1, 4($4)
870b029fb59SBen Gras	sd	$2, 8($4)
871b029fb59SBen Gras	sd	$3, 12($4)
872b029fb59SBen Gras	sd	$4, 16($4)
873b029fb59SBen Gras	sd	$5, 20($4)
874b029fb59SBen Gras	sd	$6, 24($4)
875b029fb59SBen Gras	sd	$7, 28($4)
876b029fb59SBen Gras	sd	$8, 32($4)
877b029fb59SBen Gras	sd	$9, 36($4)
878b029fb59SBen Gras	sd	$10, 40($4)
879b029fb59SBen Gras	sd	$11, 44($4)
880b029fb59SBen Gras	sd	$12, 48($4)
881b029fb59SBen Gras	sd	$13, 52($4)
882b029fb59SBen Gras	sd	$14, 56($4)
883b029fb59SBen Gras	sd	$15, 60($4)
884b029fb59SBen Gras	sd	$16, 64($4)
885b029fb59SBen Gras	sd	$17, 68($4)
886b029fb59SBen Gras	sd	$18, 72($4)
887b029fb59SBen Gras	sd	$19, 76($4)
888b029fb59SBen Gras	sd	$20, 80($4)
889b029fb59SBen Gras	sd	$21, 84($4)
890b029fb59SBen Gras	sd	$22, 88($4)
891b029fb59SBen Gras	sd	$23, 92($4)
892b029fb59SBen Gras	sd	$24, 96($4)
893b029fb59SBen Gras	sd	$25, 100($4)
894b029fb59SBen Gras	sd	$26, 104($4)
895b029fb59SBen Gras	sd	$27, 108($4)
896b029fb59SBen Gras	sd	$28, 112($4)
897b029fb59SBen Gras	sd	$29, 116($4)
898b029fb59SBen Gras	sd	$30, 120($4)
899b029fb59SBen Gras	sd	$31, 124($4)
900b029fb59SBen Gras	jr	$31
901b029fb59SBen Gras	  nop
902b029fb59SBen GrasEND(_ZN7_Unwind16Registers_MIPS64C1Ev)
903b029fb59SBen Gras
904b029fb59SBen GrasLEAF(_ZNK7_Unwind16Registers_MIPS646jumptoEv)
905b029fb59SBen Gras#if 0
906b029fb59SBen Gras	FP_L	$f0, 256($4)
907b029fb59SBen Gras	FP_L	$f1, 264($4)
908b029fb59SBen Gras	FP_L	$f2, 272($4)
909b029fb59SBen Gras	FP_L	$f3, 280($4)
910b029fb59SBen Gras	FP_L	$f4, 288($4)
911b029fb59SBen Gras	FP_L	$f5, 296($4)
912b029fb59SBen Gras	FP_L	$f6, 304($4)
913b029fb59SBen Gras	FP_L	$f7, 312($4)
914b029fb59SBen Gras	FP_L	$f8, 320($4)
915b029fb59SBen Gras	FP_L	$f9, 328($4)
916b029fb59SBen Gras	FP_L	$f10, 336($4)
917b029fb59SBen Gras	FP_L	$f11, 344($4)
918b029fb59SBen Gras	FP_L	$f12, 352($4)
919b029fb59SBen Gras	FP_L	$f13, 360($4)
920b029fb59SBen Gras	FP_L	$f14, 368($4)
921b029fb59SBen Gras	FP_L	$f15, 376($4)
922b029fb59SBen Gras	FP_L	$f16, 384($4)
923b029fb59SBen Gras	FP_L	$f17, 392($4)
924b029fb59SBen Gras	FP_L	$f18, 400($4)
925b029fb59SBen Gras	FP_L	$f19, 408($4)
926b029fb59SBen Gras	FP_L	$f20, 416($4)
927b029fb59SBen Gras	FP_L	$f21, 424($4)
928b029fb59SBen Gras	FP_L	$f22, 432($4)
929b029fb59SBen Gras	FP_L	$f23, 440($4)
930b029fb59SBen Gras	FP_L	$f24, 448($4)
931b029fb59SBen Gras	FP_L	$f25, 456($4)
932b029fb59SBen Gras	FP_L	$f26, 464($4)
933b029fb59SBen Gras	FP_L	$f27, 472($4)
934b029fb59SBen Gras	FP_L	$f28, 480($4)
935b029fb59SBen Gras	FP_L	$f29, 488($4)
936b029fb59SBen Gras	FP_L	$f30, 496($4)
937b029fb59SBen Gras	FP_L	$f31, 504($4)
938b029fb59SBen Gras#endif
939b029fb59SBen Gras
940b029fb59SBen Gras	ld	$31, 0($4)
941b029fb59SBen Gras	ld	$1, 8($4)
942b029fb59SBen Gras	ld	$2, 16($4)
943b029fb59SBen Gras	ld	$3, 24($4)
944b029fb59SBen Gras	ld	$5, 40($4)
945b029fb59SBen Gras	ld	$6, 48($4)
946b029fb59SBen Gras	ld	$7, 56($4)
947b029fb59SBen Gras	ld	$8, 64($4)
948b029fb59SBen Gras	ld	$9, 72($4)
949b029fb59SBen Gras	ld	$10, 80($4)
950b029fb59SBen Gras	ld	$11, 88($4)
951b029fb59SBen Gras	ld	$12, 96($4)
952b029fb59SBen Gras	ld	$13, 104($4)
953b029fb59SBen Gras	ld	$14, 112($4)
954b029fb59SBen Gras	ld	$15, 120($4)
955b029fb59SBen Gras	ld	$16, 128($4)
956b029fb59SBen Gras	ld	$17, 136($4)
957b029fb59SBen Gras	ld	$18, 144($4)
958b029fb59SBen Gras	ld	$19, 152($4)
959b029fb59SBen Gras	ld	$20, 160($4)
960b029fb59SBen Gras	ld	$21, 168($4)
961b029fb59SBen Gras	ld	$22, 176($4)
962b029fb59SBen Gras	ld	$23, 184($4)
963b029fb59SBen Gras	ld	$24, 192($4)
964b029fb59SBen Gras	ld	$25, 200($4)
965b029fb59SBen Gras	ld	$26, 208($4)
966b029fb59SBen Gras	ld	$27, 216($4)
967b029fb59SBen Gras	ld	$28, 224($4)
968b029fb59SBen Gras	ld	$29, 232($4)
969b029fb59SBen Gras	ld	$30, 240($4)
970b029fb59SBen Gras	 ld	$4, 32($4)
971b029fb59SBen Gras	jr	$31
972b029fb59SBen Gras	  nop
973b029fb59SBen GrasEND(_ZNK7_Unwind16Registers_MIPS646jumptoEv)
974b029fb59SBen Gras#elif defined(__mips__)
975b029fb59SBen Gras	.set noat
976b029fb59SBen GrasLEAF(_ZN7_Unwind14Registers_MIPSC1Ev)
977b029fb59SBen Gras#if 0
978b029fb59SBen Gras#if __mips > 1
979b029fb59SBen Gras	FP_S	$f0, 128($4)
980b029fb59SBen Gras	FP_S	$f1, 136($4)
981b029fb59SBen Gras	FP_S	$f2, 144($4)
982b029fb59SBen Gras	FP_S	$f3, 152($4)
983b029fb59SBen Gras	FP_S	$f4, 160($4)
984b029fb59SBen Gras	FP_S	$f5, 168($4)
985b029fb59SBen Gras	FP_S	$f6, 176($4)
986b029fb59SBen Gras	FP_S	$f7, 184($4)
987b029fb59SBen Gras	FP_S	$f8, 192($4)
988b029fb59SBen Gras	FP_S	$f9, 200($4)
989b029fb59SBen Gras	FP_S	$f10, 208($4)
990b029fb59SBen Gras	FP_S	$f11, 216($4)
991b029fb59SBen Gras	FP_S	$f12, 224($4)
992b029fb59SBen Gras	FP_S	$f13, 232($4)
993b029fb59SBen Gras	FP_S	$f14, 240($4)
994b029fb59SBen Gras	FP_S	$f15, 248($4)
995b029fb59SBen Gras	FP_S	$f16, 256($4)
996b029fb59SBen Gras	FP_S	$f17, 264($4)
997b029fb59SBen Gras	FP_S	$f18, 272($4)
998b029fb59SBen Gras	FP_S	$f19, 280($4)
999b029fb59SBen Gras	FP_S	$f20, 288($4)
1000b029fb59SBen Gras	FP_S	$f21, 296($4)
1001b029fb59SBen Gras	FP_S	$f22, 304($4)
1002b029fb59SBen Gras	FP_S	$f23, 312($4)
1003b029fb59SBen Gras	FP_S	$f24, 320($4)
1004b029fb59SBen Gras	FP_S	$f25, 328($4)
1005b029fb59SBen Gras	FP_S	$f26, 336($4)
1006b029fb59SBen Gras	FP_S	$f27, 344($4)
1007b029fb59SBen Gras	FP_S	$f28, 352($4)
1008b029fb59SBen Gras	FP_S	$f29, 360($4)
1009b029fb59SBen Gras	FP_S	$f30, 368($4)
1010b029fb59SBen Gras	FP_S	$f31, 376($4)
1011b029fb59SBen Gras#endif
1012b029fb59SBen Gras#endif
1013b029fb59SBen Gras	sw	$31, 0($4)
1014b029fb59SBen Gras	sw	$1, 4($4)
1015b029fb59SBen Gras	sw	$2, 8($4)
1016b029fb59SBen Gras	sw	$3, 12($4)
1017b029fb59SBen Gras	sw	$4, 16($4)
1018b029fb59SBen Gras	sw	$5, 20($4)
1019b029fb59SBen Gras	sw	$6, 24($4)
1020b029fb59SBen Gras	sw	$7, 28($4)
1021b029fb59SBen Gras	sw	$8, 32($4)
1022b029fb59SBen Gras	sw	$9, 36($4)
1023b029fb59SBen Gras	sw	$10, 40($4)
1024b029fb59SBen Gras	sw	$11, 44($4)
1025b029fb59SBen Gras	sw	$12, 48($4)
1026b029fb59SBen Gras	sw	$13, 52($4)
1027b029fb59SBen Gras	sw	$14, 56($4)
1028b029fb59SBen Gras	sw	$15, 60($4)
1029b029fb59SBen Gras	sw	$16, 64($4)
1030b029fb59SBen Gras	sw	$17, 68($4)
1031b029fb59SBen Gras	sw	$18, 72($4)
1032b029fb59SBen Gras	sw	$19, 76($4)
1033b029fb59SBen Gras	sw	$20, 80($4)
1034b029fb59SBen Gras	sw	$21, 84($4)
1035b029fb59SBen Gras	sw	$22, 88($4)
1036b029fb59SBen Gras	sw	$23, 92($4)
1037b029fb59SBen Gras	sw	$24, 96($4)
1038b029fb59SBen Gras	sw	$25, 100($4)
1039b029fb59SBen Gras	sw	$26, 104($4)
1040b029fb59SBen Gras	sw	$27, 108($4)
1041b029fb59SBen Gras	sw	$28, 112($4)
1042b029fb59SBen Gras	sw	$29, 116($4)
1043b029fb59SBen Gras	sw	$30, 120($4)
1044b029fb59SBen Gras	sw	$31, 124($4)
1045b029fb59SBen Gras	jr	$31
1046b029fb59SBen Gras	  nop
1047b029fb59SBen GrasEND(_ZN7_Unwind14Registers_MIPSC1Ev)
1048b029fb59SBen Gras
1049b029fb59SBen GrasLEAF(_ZNK7_Unwind14Registers_MIPS6jumptoEv)
1050b029fb59SBen Gras#if 0
1051b029fb59SBen Gras#if __mips > 1
1052b029fb59SBen Gras	FP_L	$f0, 128($4)
1053b029fb59SBen Gras	FP_L	$f1, 136($4)
1054b029fb59SBen Gras	FP_L	$f2, 144($4)
1055b029fb59SBen Gras	FP_L	$f3, 152($4)
1056b029fb59SBen Gras	FP_L	$f4, 160($4)
1057b029fb59SBen Gras	FP_L	$f5, 168($4)
1058b029fb59SBen Gras	FP_L	$f6, 176($4)
1059b029fb59SBen Gras	FP_L	$f7, 184($4)
1060b029fb59SBen Gras	FP_L	$f8, 192($4)
1061b029fb59SBen Gras	FP_L	$f9, 200($4)
1062b029fb59SBen Gras	FP_L	$f10, 208($4)
1063b029fb59SBen Gras	FP_L	$f11, 216($4)
1064b029fb59SBen Gras	FP_L	$f12, 224($4)
1065b029fb59SBen Gras	FP_L	$f13, 232($4)
1066b029fb59SBen Gras	FP_L	$f14, 240($4)
1067b029fb59SBen Gras	FP_L	$f15, 248($4)
1068b029fb59SBen Gras	FP_L	$f16, 256($4)
1069b029fb59SBen Gras	FP_L	$f17, 264($4)
1070b029fb59SBen Gras	FP_L	$f18, 272($4)
1071b029fb59SBen Gras	FP_L	$f19, 280($4)
1072b029fb59SBen Gras	FP_L	$f20, 288($4)
1073b029fb59SBen Gras	FP_L	$f21, 296($4)
1074b029fb59SBen Gras	FP_L	$f22, 304($4)
1075b029fb59SBen Gras	FP_L	$f23, 312($4)
1076b029fb59SBen Gras	FP_L	$f24, 320($4)
1077b029fb59SBen Gras	FP_L	$f25, 328($4)
1078b029fb59SBen Gras	FP_L	$f26, 336($4)
1079b029fb59SBen Gras	FP_L	$f27, 344($4)
1080b029fb59SBen Gras	FP_L	$f28, 352($4)
1081b029fb59SBen Gras	FP_L	$f29, 360($4)
1082b029fb59SBen Gras	FP_L	$f30, 368($4)
1083b029fb59SBen Gras	FP_L	$f31, 376($4)
1084b029fb59SBen Gras#endif
1085b029fb59SBen Gras#endif
1086b029fb59SBen Gras
1087b029fb59SBen Gras	lw	$31, 0($4)
1088b029fb59SBen Gras	lw	$1, 4($4)
1089b029fb59SBen Gras	lw	$2, 8($4)
1090b029fb59SBen Gras	lw	$3, 12($4)
1091b029fb59SBen Gras	lw	$5, 20($4)
1092b029fb59SBen Gras	lw	$6, 24($4)
1093b029fb59SBen Gras	lw	$7, 28($4)
1094b029fb59SBen Gras	lw	$8, 32($4)
1095b029fb59SBen Gras	lw	$9, 36($4)
1096b029fb59SBen Gras	lw	$10, 40($4)
1097b029fb59SBen Gras	lw	$11, 44($4)
1098b029fb59SBen Gras	lw	$12, 48($4)
1099b029fb59SBen Gras	lw	$13, 52($4)
1100b029fb59SBen Gras	lw	$14, 56($4)
1101b029fb59SBen Gras	lw	$15, 60($4)
1102b029fb59SBen Gras	lw	$16, 64($4)
1103b029fb59SBen Gras	lw	$17, 68($4)
1104b029fb59SBen Gras	lw	$18, 72($4)
1105b029fb59SBen Gras	lw	$19, 76($4)
1106b029fb59SBen Gras	lw	$20, 80($4)
1107b029fb59SBen Gras	lw	$21, 84($4)
1108b029fb59SBen Gras	lw	$22, 88($4)
1109b029fb59SBen Gras	lw	$23, 92($4)
1110b029fb59SBen Gras	lw	$24, 96($4)
1111b029fb59SBen Gras	lw	$25, 100($4)
1112b029fb59SBen Gras	lw	$26, 104($4)
1113b029fb59SBen Gras	lw	$27, 108($4)
1114b029fb59SBen Gras	lw	$28, 112($4)
1115b029fb59SBen Gras	lw	$29, 116($4)
1116b029fb59SBen Gras	lw	$30, 120($4)
1117b029fb59SBen Gras	 lw	$4, 16($4)
1118b029fb59SBen Gras	jr	$31
1119b029fb59SBen Gras	  nop
1120b029fb59SBen GrasEND(_ZNK7_Unwind14Registers_MIPS6jumptoEv)
1121b029fb59SBen Gras#endif
1122b029fb59SBen Gras
1123b029fb59SBen Gras#if defined(__hppa__)
1124b029fb59SBen GrasLEAF_ENTRY_NOPROFILE(_ZN7_Unwind14Registers_HPPAC1Ev)
1125b029fb59SBen Gras	stw %r2, 0(%r26)
1126b029fb59SBen Gras	stw %r1, 4(%r26)
1127b029fb59SBen Gras	stw %r2, 8(%r26)
1128b029fb59SBen Gras	stw %r3, 12(%r26)
1129b029fb59SBen Gras	stw %r4, 16(%r26)
1130b029fb59SBen Gras	stw %r5, 20(%r26)
1131b029fb59SBen Gras	stw %r6, 24(%r26)
1132b029fb59SBen Gras	stw %r7, 28(%r26)
1133b029fb59SBen Gras	stw %r8, 32(%r26)
1134b029fb59SBen Gras	stw %r9, 36(%r26)
1135b029fb59SBen Gras	stw %r10, 40(%r26)
1136b029fb59SBen Gras	stw %r11, 44(%r26)
1137b029fb59SBen Gras	stw %r12, 48(%r26)
1138b029fb59SBen Gras	stw %r13, 52(%r26)
1139b029fb59SBen Gras	stw %r14, 56(%r26)
1140b029fb59SBen Gras	stw %r15, 60(%r26)
1141b029fb59SBen Gras	stw %r16, 64(%r26)
1142b029fb59SBen Gras	stw %r17, 68(%r26)
1143b029fb59SBen Gras	stw %r18, 72(%r26)
1144b029fb59SBen Gras	stw %r19, 76(%r26)
1145b029fb59SBen Gras	stw %r20, 80(%r26)
1146b029fb59SBen Gras	stw %r21, 84(%r26)
1147b029fb59SBen Gras	stw %r22, 88(%r26)
1148b029fb59SBen Gras	stw %r23, 92(%r26)
1149b029fb59SBen Gras	stw %r24, 96(%r26)
1150b029fb59SBen Gras	stw %r25, 100(%r26)
1151b029fb59SBen Gras	stw %r26, 104(%r26)
1152b029fb59SBen Gras	stw %r27, 108(%r26)
1153b029fb59SBen Gras	stw %r28, 112(%r26)
1154b029fb59SBen Gras	stw %r29, 116(%r26)
1155b029fb59SBen Gras	stw %r30, 120(%r26)
1156b029fb59SBen Gras	stw %r31, 124(%r26)
1157b029fb59SBen Gras	ldi 128, %r19
1158b029fb59SBen Gras	addl %r19, %r26, %r19
1159b029fb59SBen Gras	fstds,ma %fr4, 8(%r19)
1160b029fb59SBen Gras	fstds,ma %fr5, 8(%r19)
1161b029fb59SBen Gras	fstds,ma %fr6, 8(%r19)
1162b029fb59SBen Gras	fstds,ma %fr7, 8(%r19)
1163b029fb59SBen Gras	fstds,ma %fr8, 8(%r19)
1164b029fb59SBen Gras	fstds,ma %fr9, 8(%r19)
1165b029fb59SBen Gras	fstds,ma %fr10, 8(%r19)
1166b029fb59SBen Gras	fstds,ma %fr11, 8(%r19)
1167b029fb59SBen Gras	fstds,ma %fr12, 8(%r19)
1168b029fb59SBen Gras	fstds,ma %fr13, 8(%r19)
1169b029fb59SBen Gras	fstds,ma %fr14, 8(%r19)
1170b029fb59SBen Gras	fstds,ma %fr15, 8(%r19)
1171b029fb59SBen Gras	fstds,ma %fr16, 8(%r19)
1172b029fb59SBen Gras	fstds,ma %fr17, 8(%r19)
1173b029fb59SBen Gras	fstds,ma %fr18, 8(%r19)
1174b029fb59SBen Gras	fstds,ma %fr19, 8(%r19)
1175b029fb59SBen Gras	fstds,ma %fr20, 8(%r19)
1176b029fb59SBen Gras	fstds,ma %fr21, 8(%r19)
1177b029fb59SBen Gras	fstds,ma %fr22, 8(%r19)
1178b029fb59SBen Gras	fstds,ma %fr23, 8(%r19)
1179b029fb59SBen Gras	fstds,ma %fr24, 8(%r19)
1180b029fb59SBen Gras	fstds,ma %fr25, 8(%r19)
1181b029fb59SBen Gras	fstds,ma %fr19, 8(%r19)
1182b029fb59SBen Gras	fstds,ma %fr27, 8(%r19)
1183b029fb59SBen Gras	fstds,ma %fr28, 8(%r19)
1184b029fb59SBen Gras	fstds,ma %fr29, 8(%r19)
1185b029fb59SBen Gras	fstds,ma %fr30, 8(%r19)
1186b029fb59SBen Gras	fstds,ma %fr31, 8(%r19)
1187b029fb59SBen Gras	ldw 76(%r26), %r19
1188b029fb59SBen Gras	bv,n %r0(%r2)
1189b029fb59SBen GrasEXIT(_ZN7_Unwind14Registers_HPPAC1Ev)
1190b029fb59SBen Gras
1191b029fb59SBen GrasLEAF_ENTRY_NOPROFILE(_ZNK7_Unwind14Registers_HPPA6jumptoEv)
1192b029fb59SBen Gras	ldi 128, %r19
1193b029fb59SBen Gras	addl %r19, %r26, %r19
1194b029fb59SBen Gras	fldds,ma 8(%r19), %fr4
1195b029fb59SBen Gras	fldds,ma 8(%r19), %fr5
1196b029fb59SBen Gras	fldds,ma 8(%r19), %fr6
1197b029fb59SBen Gras	fldds,ma 8(%r19), %fr7
1198b029fb59SBen Gras	fldds,ma 8(%r19), %fr8
1199b029fb59SBen Gras	fldds,ma 8(%r19), %fr9
1200b029fb59SBen Gras	fldds,ma 8(%r19), %fr10
1201b029fb59SBen Gras	fldds,ma 8(%r19), %fr11
1202b029fb59SBen Gras	fldds,ma 8(%r19), %fr12
1203b029fb59SBen Gras	fldds,ma 8(%r19), %fr13
1204b029fb59SBen Gras	fldds,ma 8(%r19), %fr14
1205b029fb59SBen Gras	fldds,ma 8(%r19), %fr15
1206b029fb59SBen Gras	fldds,ma 8(%r19), %fr16
1207b029fb59SBen Gras	fldds,ma 8(%r19), %fr17
1208b029fb59SBen Gras	fldds,ma 8(%r19), %fr18
1209b029fb59SBen Gras	fldds,ma 8(%r19), %fr19
1210b029fb59SBen Gras	fldds,ma 8(%r19), %fr20
1211b029fb59SBen Gras	fldds,ma 8(%r19), %fr21
1212b029fb59SBen Gras	fldds,ma 8(%r19), %fr22
1213b029fb59SBen Gras	fldds,ma 8(%r19), %fr23
1214b029fb59SBen Gras	fldds,ma 8(%r19), %fr24
1215b029fb59SBen Gras	fldds,ma 8(%r19), %fr25
1216b029fb59SBen Gras	fldds,ma 8(%r19), %fr26
1217b029fb59SBen Gras	fldds,ma 8(%r19), %fr27
1218b029fb59SBen Gras	fldds,ma 8(%r19), %fr28
1219b029fb59SBen Gras	fldds,ma 8(%r19), %fr29
1220b029fb59SBen Gras	fldds,ma 8(%r19), %fr30
1221b029fb59SBen Gras	fldds,ma 8(%r19), %fr31
1222b029fb59SBen Gras	ldw 0(%r26), %r2
1223b029fb59SBen Gras	ldw 4(%r26), %r1
1224b029fb59SBen Gras	ldw 12(%r26), %r3
1225b029fb59SBen Gras	ldw 16(%r26), %r4
1226b029fb59SBen Gras	ldw 20(%r26), %r5
1227b029fb59SBen Gras	ldw 24(%r26), %r6
1228b029fb59SBen Gras	ldw 28(%r26), %r7
1229b029fb59SBen Gras	ldw 32(%r26), %r8
1230b029fb59SBen Gras	ldw 36(%r26), %r9
1231b029fb59SBen Gras	ldw 40(%r26), %r10
1232b029fb59SBen Gras	ldw 44(%r26), %r11
1233b029fb59SBen Gras	ldw 48(%r26), %r12
1234b029fb59SBen Gras	ldw 52(%r26), %r13
1235b029fb59SBen Gras	ldw 56(%r26), %r14
1236b029fb59SBen Gras	ldw 60(%r26), %r15
1237b029fb59SBen Gras	ldw 64(%r26), %r16
1238b029fb59SBen Gras	ldw 68(%r26), %r17
1239b029fb59SBen Gras	ldw 72(%r26), %r18
1240b029fb59SBen Gras	ldw 76(%r26), %r19
1241b029fb59SBen Gras	ldw 80(%r26), %r20
1242b029fb59SBen Gras	ldw 84(%r26), %r21
1243b029fb59SBen Gras	ldw 88(%r26), %r22
1244b029fb59SBen Gras	ldw 92(%r26), %r23
1245b029fb59SBen Gras	ldw 96(%r26), %r24
1246b029fb59SBen Gras	ldw 100(%r26), %r25
1247b029fb59SBen Gras	ldw 108(%r26), %r27
1248b029fb59SBen Gras	ldw 112(%r26), %r28
1249b029fb59SBen Gras	ldw 116(%r26), %r29
1250b029fb59SBen Gras	ldw 120(%r26), %r30
1251b029fb59SBen Gras	ldw 124(%r26), %r31
1252b029fb59SBen Gras	ldw 104(%r26), %r26
1253b029fb59SBen Gras	bv,n %r0(%r2)
1254b029fb59SBen GrasEXIT(_ZNK7_Unwind14Registers_HPPA6jumptoEv)
1255b029fb59SBen Gras#endif
1256*0a6a1f1dSLionel Sambuc
1257*0a6a1f1dSLionel Sambuc#ifdef __or1k__
1258*0a6a1f1dSLionel SambucENTRY_NP(_ZN7_Unwind14Registers_or1kC1Ev)
1259*0a6a1f1dSLionel Sambuc	l.sw	(0*3)(r3), r0
1260*0a6a1f1dSLionel Sambuc	l.sw	(1*3)(r3), r1
1261*0a6a1f1dSLionel Sambuc	l.sw	(2*3)(r3), r2
1262*0a6a1f1dSLionel Sambuc	l.sw	(3*3)(r3), r3
1263*0a6a1f1dSLionel Sambuc	l.sw	(4*3)(r3), r4
1264*0a6a1f1dSLionel Sambuc	l.sw	(5*3)(r3), r5
1265*0a6a1f1dSLionel Sambuc	l.sw	(6*3)(r3), r6
1266*0a6a1f1dSLionel Sambuc	l.sw	(7*3)(r3), r7
1267*0a6a1f1dSLionel Sambuc	l.sw	(8*3)(r3), r8
1268*0a6a1f1dSLionel Sambuc	l.sw	(9*3)(r3), r9
1269*0a6a1f1dSLionel Sambuc	l.sw	(10*3)(r3), r10
1270*0a6a1f1dSLionel Sambuc	l.sw	(11*3)(r3), r11
1271*0a6a1f1dSLionel Sambuc	l.sw	(12*3)(r3), r12
1272*0a6a1f1dSLionel Sambuc	l.sw	(13*3)(r3), r13
1273*0a6a1f1dSLionel Sambuc	l.sw	(14*3)(r3), r14
1274*0a6a1f1dSLionel Sambuc	l.sw	(15*3)(r3), r15
1275*0a6a1f1dSLionel Sambuc	l.sw	(16*3)(r3), r16
1276*0a6a1f1dSLionel Sambuc	l.sw	(17*3)(r3), r17
1277*0a6a1f1dSLionel Sambuc	l.sw	(18*3)(r3), r18
1278*0a6a1f1dSLionel Sambuc	l.sw	(19*3)(r3), r19
1279*0a6a1f1dSLionel Sambuc	l.sw	(20*3)(r3), r20
1280*0a6a1f1dSLionel Sambuc	l.sw	(21*3)(r3), r21
1281*0a6a1f1dSLionel Sambuc	l.sw	(22*3)(r3), r22
1282*0a6a1f1dSLionel Sambuc	l.sw	(23*3)(r3), r23
1283*0a6a1f1dSLionel Sambuc	l.sw	(24*3)(r3), r24
1284*0a6a1f1dSLionel Sambuc	l.sw	(25*3)(r3), r25
1285*0a6a1f1dSLionel Sambuc	l.sw	(26*3)(r3), r26
1286*0a6a1f1dSLionel Sambuc	l.sw	(27*3)(r3), r27
1287*0a6a1f1dSLionel Sambuc	l.sw	(28*3)(r3), r28
1288*0a6a1f1dSLionel Sambuc	l.sw	(29*3)(r3), r29
1289*0a6a1f1dSLionel Sambuc	l.sw	(30*3)(r3), r30
1290*0a6a1f1dSLionel Sambuc	l.sw	(31*3)(r3), r31
1291*0a6a1f1dSLionel Sambuc	l.mfspr	r4, r0, 20
1292*0a6a1f1dSLionel Sambuc	l.sw	(32*4)(r3), r4
1293*0a6a1f1dSLionel Sambuc	l.jr	lr
1294*0a6a1f1dSLionel Sambuc	l.nop
1295*0a6a1f1dSLionel SambucEND(_ZN7_Unwind14Registers_or1kC1Ev)
1296*0a6a1f1dSLionel Sambuc
1297*0a6a1f1dSLionel SambucENTRY_NP(_ZNK7_Unwind14Registers_or1k6jumptoEv)
1298*0a6a1f1dSLionel Sambuc	l.lwz	r6, (32*4)(r3)
1299*0a6a1f1dSLionel Sambuc	l.mtspr	r0, r6, 20
1300*0a6a1f1dSLionel Sambuc	l.lwz	r0, (0*4)(r3)
1301*0a6a1f1dSLionel Sambuc	l.lwz	r1, (1*4)(r3)
1302*0a6a1f1dSLionel Sambuc	l.lwz	r2, (2*4)(r3)
1303*0a6a1f1dSLionel Sambuc	l.lwz	r4, (4*4)(r3)
1304*0a6a1f1dSLionel Sambuc	l.lwz	r5, (5*4)(r3)
1305*0a6a1f1dSLionel Sambuc	l.lwz	r6, (6*4)(r3)
1306*0a6a1f1dSLionel Sambuc	l.lwz	r7, (7*4)(r3)
1307*0a6a1f1dSLionel Sambuc	l.lwz	r8, (8*4)(r3)
1308*0a6a1f1dSLionel Sambuc	l.lwz	r9, (9*4)(r3)
1309*0a6a1f1dSLionel Sambuc	l.lwz	r10, (10*4)(r3)
1310*0a6a1f1dSLionel Sambuc	l.lwz	r11, (11*4)(r3)
1311*0a6a1f1dSLionel Sambuc	l.lwz	r12, (12*4)(r3)
1312*0a6a1f1dSLionel Sambuc	l.lwz	r13, (13*4)(r3)
1313*0a6a1f1dSLionel Sambuc	l.lwz	r14, (14*4)(r3)
1314*0a6a1f1dSLionel Sambuc	l.lwz	r15, (15*4)(r3)
1315*0a6a1f1dSLionel Sambuc	l.lwz	r16, (16*4)(r3)
1316*0a6a1f1dSLionel Sambuc	l.lwz	r17, (17*4)(r3)
1317*0a6a1f1dSLionel Sambuc	l.lwz	r18, (18*4)(r3)
1318*0a6a1f1dSLionel Sambuc	l.lwz	r19, (19*4)(r3)
1319*0a6a1f1dSLionel Sambuc	l.lwz	r20, (20*4)(r3)
1320*0a6a1f1dSLionel Sambuc	l.lwz	r21, (21*4)(r3)
1321*0a6a1f1dSLionel Sambuc	l.lwz	r22, (22*4)(r3)
1322*0a6a1f1dSLionel Sambuc	l.lwz	r23, (23*4)(r3)
1323*0a6a1f1dSLionel Sambuc	l.lwz	r24, (24*4)(r3)
1324*0a6a1f1dSLionel Sambuc	l.lwz	r25, (25*4)(r3)
1325*0a6a1f1dSLionel Sambuc	l.lwz	r26, (26*4)(r3)
1326*0a6a1f1dSLionel Sambuc	l.lwz	r27, (27*4)(r3)
1327*0a6a1f1dSLionel Sambuc	l.lwz	r28, (28*4)(r3)
1328*0a6a1f1dSLionel Sambuc	l.lwz	r29, (29*4)(r3)
1329*0a6a1f1dSLionel Sambuc	l.lwz	r30, (30*4)(r3)
1330*0a6a1f1dSLionel Sambuc	l.lwz	r31, (31*4)(r3)
1331*0a6a1f1dSLionel Sambuc
1332*0a6a1f1dSLionel Sambuc	l.lwz	r3, (3*4)(r3)		/* return r3 */
1333*0a6a1f1dSLionel Sambuc	l.jr	lr
1334*0a6a1f1dSLionel SambucEND(_ZNK7_Unwind14Registers_or1k6jumptoEv)
1335*0a6a1f1dSLionel Sambuc
1336*0a6a1f1dSLionel Sambuc#endif
1337