Mercurial > repos > rhope
diff test/test.c @ 11:3021dac0d8f5
Stack unwind is so close I can almost taste it
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 19 May 2009 23:29:55 -0400 |
parents | 8d74ef7fa357 |
children | 31f8182f3433 |
line wrap: on
line diff
--- a/test/test.c Sat May 16 23:24:24 2009 -0400 +++ b/test/test.c Tue May 19 23:29:55 2009 -0400 @@ -5,26 +5,15 @@ #include "context.h" #include "func.h" -FuncNoLocals(Main,0) - call = alloc_cdata(cdata->ct,2); +FuncNoLocals(Main, + NumParams 0, + CallSpace 2) call->params[0] = make_Int32(2); call->params[1] = make_Int32(3); - call->num_params = 2; - ret = call_method(METHOD_ADD, call); - while(ret == TAIL_RETURN) - ret = call->tail_func(call); - if(ret == EXCEPTION_RETURN) { - Ret(0,call->params[0]); - return ret; - } + MCall(METHOD_ADD, 2) + call->params[1] = make_Int32(1); - ret = call_method(METHOD_SUB, call); - while(ret == TAIL_RETURN) - ret = call->tail_func(call); - if(ret == EXCEPTION_RETURN) { - Ret(0,call->params[0]); - return ret; - } + MCall(METHOD_SUB, 2) Ret(0,call->params[0]) EndFunc @@ -38,6 +27,7 @@ ct = new_context(); cdata = alloc_cdata(ct, 1); cdata->num_params = 0; + cdata->resume = 0; ret = _f_Main(cdata); while(ret == TAIL_RETURN) ret = cdata->tail_func(cdata);