private IEnumerable <AssemblyLine> StoreLocal(int index) { var local = MethodDefinition.Body.Variables[index]; yield return(PLA()); yield return(STA(LabelGenerator.GetFromVariable(MethodDefinition, local))); }
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); } } }