public static bool FindOpcodeInfo(OpCount count, byte opnum, out OpcodeInfo result) { Dictionary <byte, OpcodeInfo> dict; switch (count) { case OpCount.Zero: dict = zeroOpInfos; break; case OpCount.One: dict = oneOpInfos; break; case OpCount.Two: dict = twoOpInfos; break; case OpCount.Var: dict = varOpInfos; break; case OpCount.Ext: dict = extOpInfos; break; default: throw new ArgumentOutOfRangeException("count"); } return(dict.TryGetValue(opnum, out result)); }
private string FormatOpcode(OpCount opc, OpForm form, int opnum) { StringBuilder sb = new StringBuilder(FormatOpCount(opc)); sb.Append(':'); if (form == OpForm.Ext) { sb.Append(opnum); } else { switch (opc) { case OpCount.Two: case OpCount.Ext: sb.Append(opnum); break; case OpCount.One: sb.Append(128 + opnum); break; case OpCount.Zero: sb.Append(176 + opnum); break; case OpCount.Var: sb.Append(224 + opnum); break; } } return(sb.ToString()); }
public override string ToString() { var x = Ops.Any() ? $"{{{string.Join(", ", Ops)}}}" : OpCount.ToString(); return($"{nameof(Repeat)}({x}, {Times})"); }
public override string DelimitedText(char delimiter) => string.Join(string.Empty, $"{LeftOp.Trim()}{delimiter}".PadRight(OpNameLen), $"{RightOp.Trim()}{delimiter}".PadRight(OpNameLen), $"{OpCount.ToString()}{delimiter}".PadRight(MetricLen), $"{LeftTime}{delimiter}".PadRight(MetricLen), $"{RightTime}{delimiter}".PadRight(MetricLen), Ratio);
public OpcodeAttribute(OpCount count, byte opnum, bool store, bool branch, bool text) { _count = count; _opnum = opnum; _store = store; _branch = branch; _text = text; }
private string FormatOpCount(OpCount opc) { switch (opc) { case OpCount.Zero: return("0OP"); case OpCount.One: return("1OP"); case OpCount.Two: return("2OP"); case OpCount.Var: return("VAR"); case OpCount.Ext: return("EXT"); default: return("BUG"); } }
public static bool FindOpcodeInfo(OpCount count, byte opnum, byte zversion, out OpcodeInfo result) { Dictionary <byte, OpcodeInfo[]> dict; switch (count) { case OpCount.Zero: dict = zeroOpInfos; break; case OpCount.One: dict = oneOpInfos; break; case OpCount.Two: dict = twoOpInfos; break; case OpCount.Var: dict = varOpInfos; break; case OpCount.Ext: dict = extOpInfos; break; default: throw new ArgumentOutOfRangeException("count"); } OpcodeInfo[] array; if (dict.TryGetValue(opnum, out array)) { foreach (OpcodeInfo info in array) { if (zversion >= info.Attr.MinVersion && zversion <= info.Attr.MaxVersion) { result = info; return(true); } } } result = default(OpcodeInfo); return(false); }
public OpcodeAttribute(OpCount count, byte opnum, bool store) : this(count, opnum, store, false, false) { }
public OpcodeAttribute(OpCount count, byte opnum) : this(count, opnum, false, false, false) { }
public static bool FindOpcodeInfo(OpCount count, byte opnum, out OpcodeInfo result) { Dictionary<byte, OpcodeInfo> dict; switch (count) { case OpCount.Zero: dict = zeroOpInfos; break; case OpCount.One: dict = oneOpInfos; break; case OpCount.Two: dict = twoOpInfos; break; case OpCount.Var: dict = varOpInfos; break; case OpCount.Ext: dict = extOpInfos; break; default: throw new ArgumentOutOfRangeException("count"); } return dict.TryGetValue(opnum, out result); }
internal static string FormatOpcode(OpCount opc, OpForm form, int opnum) { StringBuilder sb = new StringBuilder(FormatOpCount(opc)); sb.Append(':'); if (form == OpForm.Ext) { sb.Append(opnum); } else switch (opc) { case OpCount.Two: case OpCount.Ext: sb.Append(opnum); break; case OpCount.One: sb.Append(128 + opnum); break; case OpCount.Zero: sb.Append(176 + opnum); break; case OpCount.Var: sb.Append(224 + opnum); break; } return sb.ToString(); }
private static string FormatOpCount(OpCount opc) { switch (opc) { case OpCount.Zero: return "0OP"; case OpCount.One: return "1OP"; case OpCount.Two: return "2OP"; case OpCount.Var: return "VAR"; case OpCount.Ext: return "EXT"; default: return "BUG"; } }