コード例 #1
0
        /// <summary>
        /// Evaluates the parameter operands.
        /// </summary>
        protected void EvaluateParameterOperands()
        {
            int index = 0;

            //FIXME! Note: displacement is recalculated later
            int displacement = 4;

            if (Method.HasThis || Method.HasExplicitThis)
            {
                if (Type.IsValueType)
                {
                    StackLayout.SetStackParameter(index++, Type.ToManagedPointer(), displacement, "this");
                }
                else
                {
                    StackLayout.SetStackParameter(index++, Type, displacement, "this");
                }
            }

            foreach (var parameter in Method.Signature.Parameters)
            {
                StackLayout.SetStackParameter(index++, parameter.ParameterType, displacement, parameter.Name);
            }
        }