summaryrefslogtreecommitdiff
path: root/src/setjmp/sh/longjmp.S
blob: 08f668b8803528f64e8796f81fd6c5a87de354d0 (plain) (blame)
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
.global _longjmp
.global longjmp
.type   _longjmp, @function
.type   longjmp,  @function
_longjmp:
longjmp:
	mov.l  @r4+, r8
	mov.l  @r4+, r9
	mov.l  @r4+, r10
	mov.l  @r4+, r11
	mov.l  @r4+, r12
	mov.l  @r4+, r13
	mov.l  @r4+, r14
	mov.l  @r4+, r15
	lds.l  @r4+, pr
#if __SH_FPU_ANY__ || __SH4__
	fmov.s @r4+, fr12
	fmov.s @r4+, fr13
	fmov.s @r4+, fr14
	fmov.s @r4+, fr15
#endif

	tst  r5, r5
	movt r0
	add  r5, r0

	rts
	 nop