예제 #1
0
        static StackObject *Set_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 3);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            global::FP @y = new global::FP();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder.ParseValue(ref @y, __intp, ptr_of_this_method, __mStack, true);
            }
            else
            {
                @y = (global::FP)typeof(global::FP).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
                __intp.Free(ptr_of_this_method);
            }

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            global::FP @x = new global::FP();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder.ParseValue(ref @x, __intp, ptr_of_this_method, __mStack, true);
            }
            else
            {
                @x = (global::FP)typeof(global::FP).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
                __intp.Free(ptr_of_this_method);
            }

            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
            global::TSVector2 instance_of_this_method = new global::TSVector2();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.ParseValue(ref instance_of_this_method, __intp, ptr_of_this_method, __mStack, false);
            }
            else
            {
                ptr_of_this_method      = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
                instance_of_this_method = (global::TSVector2)typeof(global::TSVector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            }

            instance_of_this_method.Set(@x, @y);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
            if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.WriteBackValue(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
            }
            else
            {
                WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
            }

            __intp.Free(ptr_of_this_method);
            return(__ret);
        }
예제 #2
0
        static StackObject *Ctor_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            global::FP @y = new global::FP();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder.ParseValue(ref @y, __intp, ptr_of_this_method, __mStack, true);
            }
            else
            {
                @y = (global::FP)typeof(global::FP).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
                __intp.Free(ptr_of_this_method);
            }

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            global::FP @x = new global::FP();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_FP_Binding_Binder.ParseValue(ref @x, __intp, ptr_of_this_method, __mStack, true);
            }
            else
            {
                @x = (global::FP)typeof(global::FP).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
                __intp.Free(ptr_of_this_method);
            }


            var result_of_this_method = new global::TSVector2(@x, @y);

            if (!isNewObj)
            {
                __ret--;
                if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
                {
                    ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.WriteBackValue(__domain, __ret, __mStack, ref result_of_this_method);
                }
                else
                {
                    WriteBackInstance(__domain, __ret, __mStack, ref result_of_this_method);
                }
                return(__ret);
            }

            if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.PushValue(ref result_of_this_method, __intp, __ret, __mStack);
                return(__ret + 1);
            }
            else
            {
                return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
            }
        }
예제 #3
0
        static void WriteBackInstance(ILRuntime.Runtime.Enviorment.AppDomain __domain, StackObject *ptr_of_this_method, IList <object> __mStack, ref global::TSVector2 instance_of_this_method)
        {
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            switch (ptr_of_this_method->ObjectType)
            {
            case ObjectTypes.Object:
            {
                __mStack[ptr_of_this_method->Value] = instance_of_this_method;
            }
            break;

            case ObjectTypes.FieldReference:
            {
                var ___obj = __mStack[ptr_of_this_method->Value];
                if (___obj is ILTypeInstance)
                {
                    ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    var t = __domain.GetType(___obj.GetType()) as CLRType;
                    t.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.StaticFieldReference:
            {
                var t = __domain.GetType(ptr_of_this_method->Value);
                if (t is ILType)
                {
                    ((ILType)t).StaticInstance[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    ((CLRType)t).SetStaticFieldValue(ptr_of_this_method->ValueLow, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.ArrayReference:
            {
                var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as global::TSVector2[];
                instance_of_arrayReference[ptr_of_this_method->ValueLow] = instance_of_this_method;
            }
            break;
            }
        }
예제 #4
0
        static StackObject *op_Addition_2(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            global::TSVector2 @value2 = new global::TSVector2();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.ParseValue(ref @value2, __intp, ptr_of_this_method, __mStack, true);
            }
            else
            {
                @value2 = (global::TSVector2)typeof(global::TSVector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
                __intp.Free(ptr_of_this_method);
            }

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            global::TSVector2 @value1 = new global::TSVector2();

            if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.ParseValue(ref @value1, __intp, ptr_of_this_method, __mStack, true);
            }
            else
            {
                @value1 = (global::TSVector2)typeof(global::TSVector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
                __intp.Free(ptr_of_this_method);
            }


            var result_of_this_method = value1 + value2;

            if (ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder != null)
            {
                ILRuntime.Runtime.Generated.CLRBindings.s_TSVector2_Binding_Binder.PushValue(ref result_of_this_method, __intp, __ret, __mStack);
                return(__ret + 1);
            }
            else
            {
                return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
            }
        }