示例#1
0
        private IEnumerable <AssemblyLine> StoreLocal(int index)
        {
            var local = MethodDefinition.Body.Variables[index];

            yield return(PLA());

            yield return(STA(LabelGenerator.GetFromVariable(MethodDefinition, local)));
        }
示例#2
0
        private IEnumerable <Symbol> AllocateLocalAddresses(CallGraph callGraph)
        {
            foreach (var node in callGraph.AllNodes)
            {
                foreach (var parameter in node.Value.Parameters)
                {
                    yield return(DefineSymbol(LabelGenerator.GetFromParameter(parameter), NextGlobal));

                    AdvanceNextGlobal(1);
                }
                foreach (var local in node.Value.Body.Variables)
                {
                    yield return(DefineSymbol(LabelGenerator.GetFromVariable(node.Value, local), NextGlobal));

                    AdvanceNextGlobal(1);
                }
            }
        }