summaryrefslogtreecommitdiffstats
path: root/usr/klibc/arch/parisc/setjmp.S
blob: c8d766c94b866474b9394f853fe23ea2d2fea68c (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
 * parisc specific setjmp/longjmp routines
 *
 */

        .text
        .align 4
        .global setjmp
        .export setjmp, code
        .proc
        .callinfo
setjmp:
        stw     %r3,0(%r26)
        stw     %r4,8(%r26)
        stw     %r5,12(%r26)
        stw     %r6,16(%r26)
        stw     %r7,20(%r26)
        stw     %r8,24(%r26)
        stw     %r9,28(%r26)
        stw     %r10,32(%r26)
        stw     %r11,36(%r26)
        stw     %r12,40(%r26)
        stw     %r13,44(%r26)
        stw     %r14,48(%r26)
        stw     %r15,52(%r26)
        stw     %r16,56(%r26)
        stw     %r17,60(%r26)
        stw     %r18,64(%r26)
        stw     %r19,68(%r26)
        stw     %r27,72(%r26)
        stw     %r30,76(%r26)
        stw     %rp,80(%r26)
        ldo     88(%r26),%r19
        fstd,ma %fr12,8(%r19)
        fstd,ma %fr13,8(%r19)
        fstd,ma %fr14,8(%r19)
        fstd,ma %fr15,8(%r19)
        fstd,ma %fr16,8(%r19)
        fstd,ma %fr17,8(%r19)
        fstd,ma %fr18,8(%r19)
        fstd,ma %fr19,8(%r19)
        fstd,ma %fr20,8(%r19)
        fstd     %fr21,0(%r19)
        bv       %r0(%rp)
        copy     %r0,%r28
	.procend

	.text
	.align 4
	.global longjmp
	.export longjmp, code
	.proc
	.callinfo
longjmp:
        ldw     0(%r26),%r3
        ldw     8(%r26),%r4
        ldw     12(%r26),%r5
        ldw     16(%r26),%r6
        ldw     20(%r26),%r7
        ldw     24(%r26),%r8
        ldw     28(%r26),%r9
        ldw     32(%r26),%r10
        ldw     36(%r26),%r11
        ldw     40(%r26),%r12
        ldw     44(%r26),%r13
        ldw     48(%r26),%r14
        ldw     52(%r26),%r15
        ldw     56(%r26),%r16
        ldw     60(%r26),%r17
        ldw     64(%r26),%r18
        ldw     68(%r26),%r19
        ldw     72(%r26),%r27
        ldw     76(%r26),%r30
        ldw     80(%r26),%rp
        ldo     88(%r26),%r20
        fldd,ma 8(%r20),%fr12
        fldd,ma 8(%r20),%fr13
        fldd,ma 8(%r20),%fr14
        fldd,ma 8(%r20),%fr15
        fldd,ma 8(%r20),%fr16
        fldd,ma 8(%r20),%fr17
        fldd,ma 8(%r20),%fr18
        fldd,ma 8(%r20),%fr19
        fldd,ma 8(%r20),%fr20
        fldd    0(%r20),%fr21
        bv      %r0(%rp)
        copy    %r25,%r28
        .procend