private string FormatOperand(FxlcOperandType type, uint index) { var elementIndex = index / 4; var componentIndex = index % 4; var component = FormatComponent(componentIndex, ComponentCount); switch (type) { case FxlcOperandType.Literal: var literal = string.Join(", ", Enumerable.Repeat(index, (int)ComponentCount)); return(string.Format("l({0})", literal)); case FxlcOperandType.Temp: return(string.Format("r{0}{1}", elementIndex, component)); case FxlcOperandType.Variable: return(string.Format("c{0}{1}", elementIndex, component)); case FxlcOperandType.Expr: return(string.Format("expr{0}{1}", elementIndex, component)); default: return(string.Format("unknown{0}{1}", elementIndex, component)); } }
private string FormatOperand(ConstantTable ctab, CliToken cli, FxlcOperandType type, uint index) { var elementIndex = index / 4; var componentIndex = index % 4; var component = FormatComponent(componentIndex, ComponentCount); switch (type) { case FxlcOperandType.Literal: var literal = string.Join(", ", Enumerable.Repeat(cli.GetLiteral(index), (int)ComponentCount)); return(string.Format("({0})", literal)); case FxlcOperandType.Temp: return(string.Format("r{0}{1}", elementIndex, component)); case FxlcOperandType.Variable: return(string.Format("c{0}{1}", elementIndex, component)); case FxlcOperandType.Expr: return(string.Format("expr{0}", index)); if (ComponentCount == 1) { if (componentIndex == 0) { return(string.Format("expr{0}", component)); } else { return(string.Format("expr0{0}", component)); } } return(string.Format("expr{0}", component)); default: return(string.Format("unknown{0}{1}", elementIndex, component)); } }
private string FormatOperand(ConstantTable ctab, Chunks.Fxlvm.Cli4Chunk cli, FxlcOperandType type, uint index) { var elementIndex = index / 4; var componentIndex = index % 4; var component = FormatComponent(componentIndex, ComponentCount); switch (type) { case FxlcOperandType.Literal: return(string.Format("({0})", cli.GetLiteral(index, ComponentCount))); case FxlcOperandType.Temp: return(string.Format("r{0}{1}", elementIndex, component)); case FxlcOperandType.Variable: return(string.Format("{0}{1}", ctab.GetVariable(elementIndex), component)); case FxlcOperandType.Expr: if (ComponentCount == 1) { if (componentIndex == 0) { return(string.Format("expr{0}", component)); } else { return(string.Format("expr0{0}", component)); } } return(string.Format("expr{0}", component)); default: return(string.Format("unknown{0}{1}", elementIndex, component)); } }