Welcome to mirror list, hosted at ThFree Co, Russian Federation.

setjmp.S « z8k « machine « libc « newlib - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6a7664112a87d9967ca76d8a78199a04c8cb5833 (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

#ifdef __Z8001__
	segm

	.global	_setjmp
_setjmp:
	ldl	rr2,@rr14	! fetch pc
	ldl	@rr6,rr2	! save it
	ldl	rr6(4),rr10
	ldl	rr6(8),rr12	! and the other special regs
	ldl	rr6(12),rr14
	ldk	r2,#0
	ret	t
	
	.globl	_longjmp

_longjmp:
	ld	r2,r5		! get return value
	ldl	rr4,rr6(0)
	ldl	rr10,rr6(4)
	ldl	rr12,rr6(8)
	ldl	rr14,rr6(12)
	jp	@rr4
#else
	unseg

	.global	_setjmp
_setjmp:
	ld	r2,@r15	! fetch pc
	ld	@r7,r2	! save it
	ldl	r7(4),rr10
	ldl	r7(8),rr12	! and the other special regs
	ldl	r7(12),rr14
	ldk	r2,#0
	ret	t
	
	.globl	_longjmp

_longjmp:
	ld	r2,r6		! get return value
	ld	r4,@r7
	ldl	rr10,rr7(4)
	ldl	rr12,rr7(8)
	ldl	rr14,rr7(12)
	jp	@rr4
	
#endif