Mercurial > repos > rhope
view runtime/integer.c @ 39:3d92bc1352c2
forgot a couple of files
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 08 Oct 2009 00:37:24 -0400 |
parents | 640f541e9116 |
children | a24eb366195c d2f9b0a9403d |
line wrap: on
line source
#include "integer.h" #include "builtin.h" #include "context.h" #include "bool.h" #define left ((t_Int32 *)cdata->params[0]) #define right ((t_Int32 *)cdata->params[1]) MethodNoLocals(_PL_,Int32, NumParams 2, CallSpace 1) CopiedParam(0, TYPE_INT32) Param(1, TYPE_INT32) left->num += right->num; release_ref((object *)right); EndFunc MethodNoLocals(_MN_,Int32, NumParams 2, CallSpace 1) CopiedParam(0, TYPE_INT32) Param(1, TYPE_INT32) left->num -= right->num; release_ref((object *)right); EndFunc MethodNoLocals(_TM_,Int32, NumParams 2, CallSpace 1) CopiedParam(0, TYPE_INT32) Param(1, TYPE_INT32) left->num *= right->num; release_ref((object *)right); EndFunc MethodNoLocals(_DV_,Int32, NumParams 2, CallSpace 1) CopiedParam(0, TYPE_INT32) Param(1, TYPE_INT32) left->num /= right->num; release_ref((object *)right); EndFunc MethodNoLocals(LShift,Int32, NumParams 2, CallSpace 1) CopiedParam(0, TYPE_INT32) Param(1, TYPE_INT32) left->num <<= right->num; release_ref((object *)right); EndFunc MethodNoLocals(RShift,Int32, NumParams 2, CallSpace 1) CopiedParam(0, TYPE_INT32) Param(1, TYPE_INT32) left->num <<= right->num; release_ref((object *)right); EndFunc MethodNoLocals(_LT_,Int32, NumParams 2, CallSpace 1) Param(0, TYPE_INT32) Param(1, TYPE_INT32) if(left->num < right->num) { release_ref(cdata->params[0]); Ret(0, Yes) } else { release_ref(cdata->params[0]); Ret(0, No) } release_ref(cdata->params[1]); EndFunc MethodNoLocals(_GT_,Int32, NumParams 2, CallSpace 1) Param(0, TYPE_INT32) Param(1, TYPE_INT32) if(left->num > right->num) { release_ref(cdata->params[0]); Ret(0, Yes) } else { release_ref(cdata->params[0]); Ret(0, No) } release_ref(cdata->params[1]); EndFunc object * make_Int32(int32_t val) { t_Int32 * obj; object * ret = new_object(TYPE_INT32); obj = (t_Int32 *)ret; obj->num = val; return ret; }