OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.17.0/] [newlib/] [libc/] [machine/] [or32/] [setjmp.S] - Blame information for rev 178

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 148 jeremybenn
/* Simple setjmp/longjmp for the OpenRISC 1000 (OR32 ISA).
2
   Damjan Lampret, OpenCores.org, Aug 15 2000.  */
3
 
4
/* Until OR1K Arch is fixed, we just save entire register file. Should be fixed eventually. */
5
 
6
        .align  4
7
        .proc   setjmp
8
        .global setjmp
9
        .extern setjmp
10
setjmp:
11
        l.sw    0(r3),r1
12
        l.sw    4(r3),r2
13
        l.sw    8(r3),r3
14
        l.sw    12(r3),r4
15
        l.sw    16(r3),r5
16
        l.sw    20(r3),r6
17
        l.sw    24(r3),r7
18
        l.sw    28(r3),r8
19
        l.sw    32(r3),r9
20
        l.sw    36(r3),r10
21
        l.sw    40(r3),r11
22
        l.sw    44(r3),r12
23
        l.sw    48(r3),r13
24
        l.sw    52(r3),r14
25
        l.sw    56(r3),r15
26
        l.sw    60(r3),r16
27
        l.sw    64(r3),r17
28
        l.sw    68(r3),r18
29
        l.sw    72(r3),r19
30
        l.sw    76(r3),r20
31
        l.sw    80(r3),r21
32
        l.sw    84(r3),r22
33
        l.sw    88(r3),r23
34
        l.sw    92(r3),r24
35
        l.sw    96(r3),r25
36
        l.sw    100(r3),r26
37
        l.sw    104(r3),r27
38
        l.sw    108(r3),r28
39
        l.sw    112(r3),r29
40
        l.sw    116(r3),r30
41
        l.sw    120(r3),r31
42
/*
43
        l.addi  r4,r0,SPR_SR
44
        l.mfsr  r4,r4
45
        l.sw    124(r3),r4
46
*/
47
        l.jr    r11
48
        l.addi  r3,r0,0
49
.endproc setjmp
50
 
51
        .align  4
52
        .proc   longjmp
53
        .global longjmp
54
longjmp:
55
        l.lwz   r1,0(r3)
56
        l.lwz   r2,4(r3)
57
        l.lwz   r5,16(r3)
58
        l.lwz   r6,20(r3)
59
        l.lwz   r7,24(r3)
60
        l.lwz   r8,28(r3)
61
        l.lwz   r9,32(r3)
62
        l.lwz   r10,36(r3)
63
        l.lwz   r11,40(r3)
64
        l.lwz   r12,44(r3)
65
        l.lwz   r13,48(r3)
66
        l.lwz   r14,52(r3)
67
        l.lwz   r15,56(r3)
68
        l.lwz   r16,60(r3)
69
        l.lwz   r17,64(r3)
70
        l.lwz   r18,68(r3)
71
        l.lwz   r19,72(r3)
72
        l.lwz   r20,76(r3)
73
        l.lwz   r21,80(r3)
74
        l.lwz   r22,84(r3)
75
        l.lwz   r23,88(r3)
76
        l.lwz   r24,92(r3)
77
        l.lwz   r25,96(r3)
78
        l.lwz   r26,100(r3)
79
        l.lwz   r27,104(r3)
80
        l.lwz   r28,108(r3)
81
        l.lwz   r29,112(r3)
82
        l.lwz   r30,116(r3)
83
        l.lwz   r31,120(r3)
84
/*
85
        l.lwz    r5,124(r3)
86
        l.addi  r3,r0,SPR_ESR_BASE
87
        l.mtsr  r3,r5
88
*/
89
        l.lwz   r5,16(r3)
90
        l.sfne  r4,r0
91
        l.bf    1f
92
        l.nop
93
 
94
        l.addi  r3,r0,1
95
 
96
1:      l.addi  r3,r4,0
97
        l.jr    r11
98
        l.nop
99
.endproc longjmp

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.