Mercurial > repos > rhope
comparison runtime/fib.c @ 61:fa24ef3b026f
Added macro for tail calls with new C strategy
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 08 Oct 2009 23:16:26 -0400 |
parents | 4f1ae6eb71d8 |
children |
comparison
equal
deleted
inserted
replaced
60:b2a95ab818d3 | 61:fa24ef3b026f |
---|---|
18 FUNC_Fib_2, | 18 FUNC_Fib_2, |
19 FUNC_Fib_3, | 19 FUNC_Fib_3, |
20 FUNC_Fib_4, | 20 FUNC_Fib_4, |
21 FUNC_Fib_5, | 21 FUNC_Fib_5, |
22 FUNC_Fib_6, | 22 FUNC_Fib_6, |
23 FUNC_Fib_7, | |
24 FUNC_If, | 23 FUNC_If, |
25 FUNC_If_AT_Yes_SP_No, | 24 FUNC_If_AT_Yes_SP_No, |
26 FUNC_Main, | 25 FUNC_Main, |
27 FUNC_Main_1, | 26 FUNC_Main_1, |
28 FUNC_Main_2, | 27 FUNC_Main_2, |
42 case FUNC_Fib_2: goto r2_Fib;\ | 41 case FUNC_Fib_2: goto r2_Fib;\ |
43 case FUNC_Fib_3: goto r3_Fib;\ | 42 case FUNC_Fib_3: goto r3_Fib;\ |
44 case FUNC_Fib_4: goto r4_Fib;\ | 43 case FUNC_Fib_4: goto r4_Fib;\ |
45 case FUNC_Fib_5: goto r5_Fib;\ | 44 case FUNC_Fib_5: goto r5_Fib;\ |
46 case FUNC_Fib_6: goto r6_Fib;\ | 45 case FUNC_Fib_6: goto r6_Fib;\ |
47 case FUNC_Fib_7: goto r7_Fib;\ | |
48 case FUNC_If: goto f_If;\ | 46 case FUNC_If: goto f_If;\ |
49 case FUNC_If_AT_Yes_SP_No: goto f_If_AT_Yes_SP_No;\ | 47 case FUNC_If_AT_Yes_SP_No: goto f_If_AT_Yes_SP_No;\ |
50 case FUNC_Main: goto f_Main;\ | 48 case FUNC_Main: goto f_Main;\ |
51 case FUNC_Main_1: goto r1_Main;\ | 49 case FUNC_Main_1: goto r1_Main;\ |
52 case FUNC_Main_2: goto r2_Main;\ | 50 case FUNC_Main_2: goto r2_Main;\ |
205 NumParams 1, 6, Fib) | 203 NumParams 1, 6, Fib) |
206 lv_Fib->____result__10__0 = cdata->params[0]; | 204 lv_Fib->____result__10__0 = cdata->params[0]; |
207 } | 205 } |
208 if(lv_Fib->____result__0__1) | 206 if(lv_Fib->____result__0__1) |
209 { | 207 { |
210 SetParam(0, add_ref(lv_Fib->____result__6__0)) | 208 if(lv_Fib->____result__0__0) |
211 SetParam(1, add_ref(lv_Fib->____result__10__0)) | 209 { |
212 Call(_PL_, | 210 release_ref(lv_Fib->____result__0__0); |
213 NumParams 2, 7, Fib) | 211 } |
214 lv_Fib->____result__5__0 = cdata->params[0]; | 212 if(lv_Fib->____result__0__1) |
213 { | |
214 release_ref(lv_Fib->____result__0__1); | |
215 } | |
216 if(lv_Fib->____result__1__0) | |
217 { | |
218 release_ref(lv_Fib->____result__1__0); | |
219 } | |
220 if(lv_Fib->____result__7__0) | |
221 { | |
222 release_ref(lv_Fib->____result__7__0); | |
223 } | |
224 if(lv_Fib->____result__11__0) | |
225 { | |
226 release_ref(lv_Fib->____result__11__0); | |
227 } | |
228 TPrepCall(2) | |
229 SetParam(0, lv_Fib->____result__6__0) | |
230 SetParam(1, lv_Fib->____result__10__0) | |
231 TCall(_PL_, | |
232 NumParams 2) | |
233 //lv_Fib->____result__5__0 = cdata->params[0]; | |
215 } | 234 } |
216 FreeCall | 235 FreeCall |
217 if(lv_Fib->____result__0__1) | 236 if(lv_Fib->____result__0__1) |
218 { | 237 { |
219 lv_Fib->out = add_ref(lv_Fib->____result__5__0); | 238 lv_Fib->out = add_ref(lv_Fib->____result__5__0); |