public RegisterFrameResource(Frame frame, TypeBase type, Register register) : base(frame, type) { Register = register; if (type is PointerType) { _type = OperandValueType.Dword; } else { var typePrim = type as PrimitiveType; if (typePrim == null) throw new ArgumentException("Type must be a primitive.", nameof(type)); switch (typePrim.Type) { case Primitive.Int: _type = OperandValueType.Dword; break; case Primitive.Short: _type = OperandValueType.Word; break; case Primitive.Char: _type = OperandValueType.Byte; break; default: throw new NotSupportedException(); } } }
protected AutoSizedOperand(OperandType type, OperandValueType valueType = OperandValueType.Dword, bool isPointer = false, bool isOffset = false, Register offsetRegister = Register.R0, int payload = 0) : base(type, valueType, isPointer, isOffset, offsetRegister, payload) { }
protected Operand(OperandType type, OperandValueType valueType = OperandValueType.Dword, bool isPointer = false, bool isOffset = false, Register offsetRegister = Register.R0, int payload = 0) { Type = type; ValueType = valueType; IsPointer = isPointer; IsOffset = isOffset; OffsetRegister = offsetRegister; Payload = payload; }
public RegisterFrameResource(Frame frame, TypeBase type, Register register) : base(frame, type) { Register = register; if (type is PointerType) { _type = OperandValueType.Dword; } else { var typePrim = type as PrimitiveType; if (typePrim == null) { throw new ArgumentException("Type must be a primitive.", nameof(type)); } switch (typePrim.Type) { case Primitive.Int: _type = OperandValueType.Dword; break; case Primitive.Short: _type = OperandValueType.Word; break; case Primitive.Char: _type = OperandValueType.Byte; break; default: throw new NotSupportedException(); } } }
public FrameOperand(OperandValueType type, int offset) : base(OperandType.ImmD, type, true, true, Register.BP, offset) { }
public FrameOperand(OperandValueType type, Register offset) : base((OperandType)offset, type, true, true, Register.BP) { }
public RegisterOperand(Register register, OperandValueType type = OperandValueType.Dword) : base((OperandType)register, type) { }