// TODO: Consider making this a separate phase private void GenerateStringMap(IList <BasicBlock> blocks) { // Process all stack entrys and extract string definitions to populate the string map foreach (var block in blocks) { var currentNode = block.FirstNode; while (currentNode != null) { if (currentNode is StringConstantEntry) { var stringConstantEntry = currentNode.As <StringConstantEntry>(); var label = LabelGenerator.GetLabel(LabelType.String); _labelsToStringData[label] = stringConstantEntry.Value; stringConstantEntry.Label = label; } currentNode = currentNode.Next; } } }
public BasicBlock(int offset) { StartOffset = offset; Label = LabelGenerator.GetLabel(LabelType.BasicBlock); }