コード例 #1
0
        /// <summary>
        /// Lays out all parameters of the method.
        /// </summary>
        /// <param name="compiler">The method compiler providing the parameters.</param>
        private void LayoutParameters(BaseMethodCompiler compiler)
        {
            List<Operand> paramOps = new List<Operand>();

            int offset = 0;

            if (compiler.Method.Signature.HasThis || compiler.Method.Signature.HasExplicitThis)
                ++offset;

            for (int i = 0; i < compiler.Method.Parameters.Count + offset; ++i)
                paramOps.Add(compiler.GetParameterOperand(i));

            LayoutVariables(paramOps, callingConvention, callingConvention.OffsetOfFirstParameter, -1);
        }