comparison runtime/func.h @ 9:52d9948def24

Limit stack use in Int32 in prep for stack unwind changes
author Mike Pavone <pavone@retrodev.com>
date Sat, 16 May 2009 23:22:45 -0400
parents 8d74ef7fa357
children 3021dac0d8f5
comparison
equal deleted inserted replaced
8:8d74ef7fa357 9:52d9948def24
17 17
18 #define Func(name,numparams,locals) returntype _f_ ## name (calldata * cdata) { locals; calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams; 18 #define Func(name,numparams,locals) returntype _f_ ## name (calldata * cdata) { locals; calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams;
19 #define FuncNoLocals(name,numparams) returntype _f_ ## name (calldata * cdata) {calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams; 19 #define FuncNoLocals(name,numparams) returntype _f_ ## name (calldata * cdata) {calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams;
20 #define EndFunc return NORMAL_RETURN; } 20 #define EndFunc return NORMAL_RETURN; }
21 #define Method(name,type,numparams,locals) returntype MethodName(name,type) (calldata * cdata) { locals; calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams; 21 #define Method(name,type,numparams,locals) returntype MethodName(name,type) (calldata * cdata) { locals; calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams;
22 #define MethodNoLocals(name,type,numparams) returntype MethodName(name,type) (calldata * cdata) { calldata *call; returntype ret; int idx; for(idx = numparams; idx < cdata->num_params; ++idx) release_ref(cdata->params[idx]); cdata->num_params = numparams;
22 #define ParamBase(num,var,type,convtypeid) \ 23 #define ParamBase(num,var,type,convtypeid) \
23 call->params[0] = cdata->params[num];\ 24 call->params[0] = cdata->params[num];\
24 ret = coerce_value(convtypeid, call);\ 25 ret = coerce_value(convtypeid, call);\
25 while(ret == TAIL_RETURN)\ 26 while(ret == TAIL_RETURN)\
26 ret = call->tail_func(call);\ 27 ret = call->tail_func(call);\