summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/v850/setjmp.S
blob: b0da8e88f5760f2555c58d8561be958b94839846 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
	.file "setjmp.S"

	.section .text
	.align 1
	.global _setjmp
_setjmp:
	st.w r0,0[r6]
	st.w r3,4[r6]
	st.w r4,8[r6]
	st.w r20,12[r6]
	st.w r21,16[r6]
	st.w r22,20[r6]
	st.w r23,24[r6]
	st.w r24,28[r6]
	st.w r25,32[r6]
	st.w r26,36[r6]
	st.w r27,40[r6]
	st.w r28,44[r6]
	st.w r29,48[r6]
	st.w r30,52[r6]
	st.w r31,56[r6]
	jmp [r31]

	.global _longjmp
_longjmp:
	ld.w 0[r6],r0
	ld.w 4[r6],r3
	ld.w 8[r6],r4
	ld.w 12[r6],r20
	ld.w 16[r6],r21
	ld.w 20[r6],r22
	ld.w 24[r6],r23
	ld.w 28[r6],r24
	ld.w 32[r6],r25
	ld.w 36[r6],r26
	ld.w 40[r6],r27
	ld.w 44[r6],r28
	ld.w 48[r6],r29
	ld.w 52[r6],r30
	ld.w 56[r6],r31
	mov 1,r10
	jmp [r31]