OSDN Git Service

Initial revision
[pf3gnuchains/pf3gnuchains4x.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         .am33
8 #endif
9 _setjmp:
10         mov d0,a0
11         mov d2,(0,a0)
12         mov d3,(4,a0)
13         mov mdr,d1
14         mov d1,(8,a0)
15         mov a2,(12,a0)
16         mov a3,(16,a0)
17         mov sp,a1
18         mov a1,(20,a0)
19 #ifdef __AM33__
20         mov r4,(24,a0)
21         mov r5,(28,a0)
22         mov r6,(32,a0)
23         mov r7,(36,a0)
24 #endif
25         sub d0,d0
26         rets
27
28         .global _longjmp
29 _longjmp:
30         mov d0,a0
31         mov (8,a0),d2
32         mov d2,mdr
33         mov (0,a0),d2
34         mov (4,a0),d3
35         mov (12,a0),a2
36         mov (16,a0),a3
37         mov (20,a0),a1
38         mov a1,sp
39 #ifdef __AM33__
40         mov (24,a0),r4
41         mov (28,a0),r5
42         mov (32,a0),r6
43         mov (36,a0),r7
44 #endif
45         cmp 0,d1
46         bne L1
47         mov 1,d1
48 L1: 
49         mov d1,d0
50         retf [],0