Mercurial > repos > rhope
diff runtime/integer.c @ 48:a24eb366195c
Fixed some bugs introduced in previous commit and moved definition of integer methods out of runtime and into the compiler
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 02 Mar 2010 00:18:49 -0500 |
parents | 640f541e9116 |
children | 04baa003de5a |
line wrap: on
line diff
--- a/runtime/integer.c Tue Dec 22 01:22:09 2009 -0500 +++ b/runtime/integer.c Tue Mar 02 00:18:49 2010 -0500 @@ -3,122 +3,4 @@ #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; -}