public StackVariable(VariableSize size, bool sign = false) { Base = new Label("__TEMP__"); Offset = -1; Size = size; Sign = sign; }
public static string RegisterSuffix(this VariableSize size) { switch (size) { case VariableSize.Byte: return("b"); case VariableSize.Word: return("w"); case VariableSize.Dword: return("d"); default: return(""); } }
public static string Asm(this VariableSize size) { switch (size) { case VariableSize.Byte: return("BYTE"); case VariableSize.Dword: return("DWORD"); case VariableSize.Qword: return("QWORD"); case VariableSize.Word: return("WORD"); } throw new Exception(); }
public Variable(VariableSize size, bool signed) { Size = size; Signed = signed; Label = Label.Local(); }
public string WithSize(VariableSize size) { return(Name + size.RegisterSuffix()); }
public Constant(VariableSize size, long value) : base(size, true) { Value = (ulong)value; }
public Constant(VariableSize size, ulong value) : base(size, false) { Value = value; }