comparison runtime/func.h @ 58:4c22fe798779

Some small optimizations
author Mike Pavone <pavone@retrodev.com>
date Thu, 08 Oct 2009 03:03:48 -0400
parents 2174878a6e4b
children 4f1ae6eb71d8
comparison
equal deleted inserted replaced
57:2174878a6e4b 58:4c22fe798779
16 #define MethodName(name,type) f_ ## name ## _AT_ ## type 16 #define MethodName(name,type) f_ ## name ## _AT_ ## type
17 17
18 18
19 #define Func(name,numparams) \ 19 #define Func(name,numparams) \
20 case FUNC_ ## name:\ 20 case FUNC_ ## name:\
21 f_ ## name:\
22 for(idx = numparams; idx < cdata->num_params; ++idx)\ 21 for(idx = numparams; idx < cdata->num_params; ++idx)\
23 release_ref(cdata->params[0-idx]); cdata->num_params = numparams;\ 22 release_ref(cdata->params[0-idx]); cdata->num_params = numparams;\
23 f_ ## name:\
24 lv_ ## name = alloc_stack(ct, sizeof(lt_ ## name)); 24 lv_ ## name = alloc_stack(ct, sizeof(lt_ ## name));
25 25
26 26
27 #define FuncNoLocals(name,numparams) \ 27 #define FuncNoLocals(name,numparams) \
28 case FUNC_ ## name:\ 28 case FUNC_ ## name:\
29 f_ ## name:\
30 for(idx = numparams; idx < cdata->num_params; ++idx)\ 29 for(idx = numparams; idx < cdata->num_params; ++idx)\
31 release_ref(cdata->params[0-idx]); cdata->num_params = numparams;\ 30 release_ref(cdata->params[0-idx]); cdata->num_params = numparams;\
31 f_ ## name:
32 32
33 #define EndFunc(name) \ 33 #define EndFunc(name) \
34 free_stack(ct, lv_ ## name);\ 34 free_stack(ct, lv_ ## name);\
35 func = cdata->func;\ 35 func = cdata->func;\
36 goto _dispatch;\ 36 goto _dispatch;\
41 goto _dispatch;\ 41 goto _dispatch;\
42 42
43 #define Method(name) \ 43 #define Method(name) \
44 case FUNC_ ## name:\ 44 case FUNC_ ## name:\
45 f_ ## name:\ 45 f_ ## name:\
46 if (cdata->num_params < 1)\
47 goto _exception;\
48 switch(get_blueprint(cdata->params[0])->type_id)\ 46 switch(get_blueprint(cdata->params[0])->type_id)\
49 { 47 {
50 48
51 #define EndMethod \ 49 #define EndMethod \
52 default:\ 50 default:\