OSDN Git Service

r288@cf-ppc-macosx: monabuilder | 2008-12-07 13:17:34 +0900
[pf3gnuchains/pf3gnuchains3x.git] / newlib / libc / machine / mn10300 / setjmp.S
1         .file "setjmp.S"
2
3         .section .text
4         .align 1
5         .global _setjmp
6 #ifdef __AM33__
7 #ifdef __AM33_2__
8         .am33_2
9 #else
10         .am33
11 #endif
12 #endif
13 _setjmp:
14         mov d0,a0
15         mov d2,(0,a0)
16         mov d3,(4,a0)
17         mov mdr,d1
18         mov d1,(8,a0)
19         mov a2,(12,a0)
20         mov a3,(16,a0)
21         mov sp,a1
22         mov a1,(20,a0)
23 #ifdef __AM33__
24         add 24,a0
25         mov r4,(a0+)
26         mov r5,(a0+)
27         mov r6,(a0+)
28         mov r7,(a0+)
29 #ifdef __AM33_2__
30         fmov fs4,(a0+)
31         fmov fs5,(a0+)
32         fmov fs6,(a0+)
33         fmov fs7,(a0+)
34         fmov fs8,(a0+)
35         fmov fs9,(a0+)
36         fmov fs10,(a0+)
37         fmov fs11,(a0+)
38         fmov fs12,(a0+)
39         fmov fs13,(a0+)
40         fmov fs14,(a0+)
41         fmov fs15,(a0+)
42         fmov fs16,(a0+)
43         fmov fs17,(a0+)
44         fmov fs18,(a0+)
45         fmov fs19,(a0+)
46 #endif
47 #endif
48         sub d0,d0
49         rets
50
51         .global _longjmp
52 _longjmp:
53         mov d0,a0
54         mov (8,a0),d2
55         mov d2,mdr
56         mov (0,a0),d2
57         mov (4,a0),d3
58         mov (12,a0),a2
59         mov (16,a0),a3
60         mov (20,a0),a1
61         mov a1,sp
62 #ifdef __AM33__
63         add 24,a0
64         mov (a0+),r4
65         mov (a0+),r5
66         mov (a0+),r6
67         mov (a0+),r7
68 #ifdef __AM33_2__
69         fmov (a0+),fs4
70         fmov (a0+),fs5
71         fmov (a0+),fs6
72         fmov (a0+),fs7
73         fmov (a0+),fs8
74         fmov (a0+),fs9
75         fmov (a0+),fs10
76         fmov (a0+),fs11
77         fmov (a0+),fs12
78         fmov (a0+),fs13
79         fmov (a0+),fs14
80         fmov (a0+),fs15
81         fmov (a0+),fs16
82         fmov (a0+),fs17
83         fmov (a0+),fs18
84         fmov (a0+),fs19
85 #endif
86 #endif
87         cmp 0,d1
88         bne L1
89         mov 1,d1
90 L1: 
91         mov d1,d0
92         retf [],0