summaryrefslogtreecommitdiff
path: root/lib/libc/arch/m88k/gen/_setjmp.S
blob: d7228f04edef49cd8b80de24b17c1aa0e4969724 (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
43
44
45
46
47
48
49
50
#include "SYS.h"

ENTRY(_setjmp)
	st	r1, r2,0
	st	r14,r2,8
	st	r15,r2,12
	st	r16,r2,16
	st	r17,r2,20
	st	r18,r2,24
	st	r19,r2,28
	st	r20,r2,32
	st	r21,r2,36
	st	r22,r2,40
	st	r23,r2,44
	st	r24,r2,48
	st	r25,r2,52
	st	r26,r2,56
	st	r27,r2,60
	st	r28,r2,64
	st	r29,r2,68
	st	r30,r2,72
	st	r31,r2,76
	jmp.n	r1
	or	r2,r0,0

ENTRY(_longjmp)
	ld	r14,r2,8
	ld	r15,r2,12
	ld	r16,r2,16
	ld	r17,r2,20
	ld	r18,r2,24
	ld	r19,r2,28
	ld	r20,r2,32
	ld	r21,r2,36
	ld	r22,r2,40
	ld	r23,r2,44
	ld	r24,r2,48
	ld	r25,r2,52
	ld	r26,r2,56
	ld	r27,r2,60
	ld	r28,r2,64
	ld	r29,r2,68
	ld	r30,r2,72
	ld	r31,r2,76
	ld	r1,r2,0
	bcnd.n	ne0,r3,dsrlbl
	or	r2,r3,0
	or	r2,r0,1
     dsrlbl:
	jmp	r1