Mercurial > hg > CbC > old > device
annotate test/tmp1.c @ 935:7672a37e7545 default tip
Raspbery PI ARM support begin
author | kono |
---|---|
date | Sat, 24 Dec 2016 03:02:57 +0000 |
parents | 5313ed059cee |
children |
rev | line source |
---|---|
449 | 1 /* easy test */ |
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
2 #define __environment _CbC_environment |
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
3 #define __return _CbC_return |
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
4 |
0 | 5 |
720 | 6 extern int printf(const char *,...); |
7 | |
622 | 8 __code (*ret)(); |
449 | 9 void *env; |
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
10 __code exit1(int ac,void *); |
449 | 11 |
12 main0(ac,av) | |
0 | 13 int ac; |
14 char *av[]; | |
15 { | |
720 | 16 ret = __return; |
17 env = __environment; | |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
18 printf("#0017:main0 %d start.\n",ac); |
449 | 19 if (ac>=1) |
880 | 20 goto code0(ac,av,__return); |
172 | 21 goto code1(ac,av,exit1); |
449 | 22 // not reached. (warning?) |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
23 printf("#0022:main0 %d end.\n",ac); |
172 | 24 } |
25 | |
622 | 26 __code exit1(int ac) |
172 | 27 { |
449 | 28 // exit(0); |
29 goto code3(0,1,2,3,4,5); | |
0 | 30 } |
31 | |
622 | 32 __code code3(a,b,c,d,e,f) |
0 | 33 char a,b; |
34 int c,d,e,f; | |
35 { | |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
36 printf("#0035:code3: %d %d %d %d %d %d\n",a,b,c,d,e,f); |
449 | 37 if(a<10) |
880 | 38 goto code3(a+1,b,c,d,e,f); |
0 | 39 else |
880 | 40 goto code4(a+3,b+3,c+3,d+3,e+3,f+3); |
0 | 41 } |
42 | |
622 | 43 __code code4(a,b,c,d,e,f) |
0 | 44 char a,b; |
45 int c,d,e,f; | |
46 { | |
449 | 47 int i=1,j=2; |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
48 printf("#0047:code4: %d %d %d %d %d %d\n",a,b,c,d,e,f); |
449 | 49 if(a<20) // cyclic binary dependency |
880 | 50 goto code3(a+b,b+c,c+d,d+e,e+f,f+a); |
449 | 51 else if(a<30) |
880 | 52 goto code3(a,b,c,d,e,f); |
449 | 53 else if(a<40) // cyclic dependency |
880 | 54 goto code3(b,c,a,e,f,d); |
449 | 55 else if(a<50) |
880 | 56 goto code4(a+i,b+j,c+i,d+3,e+3,f+3); |
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
57 else goto ret(0,env); |
0 | 58 } |
59 | |
622 | 60 __code code0(ac,av,ret) |
0 | 61 int ac; |
62 char *av[]; | |
720 | 63 __code (*ret)(int); |
0 | 64 { |
449 | 65 goto code1(ac,av,ret); |
0 | 66 } |
67 | |
622 | 68 __code code1(ac,av,exit) |
720 | 69 int ac; |
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
70 __code (*exit)(int,void*); |
0 | 71 char *av[]; |
72 { | |
725
3f1f6c0610c1
goto with enviornment syntax changed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
720
diff
changeset
|
73 __code (*f)(int,void *); |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
74 printf("#0073:code1: %d\n",ac); |
172 | 75 f = exit; |
0 | 76 if (ac>3) |
880 | 77 goto code1(ac,av,f); |
0 | 78 else if (ac>2) |
880 | 79 goto code1(av,ac,f); |
0 | 80 else |
880 | 81 goto (*f)(ac,env); |
0 | 82 } |
449 | 83 |
84 int | |
85 main(int ac,char *av[]) | |
86 { | |
87 main0(1,av); | |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
88 printf("#0087:main continue.\n"); |
449 | 89 main0(0,av); |
748
c2c709727221
i64 continue... basic.s assembled.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
725
diff
changeset
|
90 printf("#0089:main end.\n"); |
575 | 91 return 0; |
449 | 92 } |
93 | |
94 /* end */ |