internal Memory(GpRegister @base, int disp, int size = 0) : base(OperandType.Memory, size) { Id = @base.Index; MemoryType = MemoryType.BaseIndex; Displacement = disp; Flags = GetGpdFlags(@base) + (Constants.X86.MemVSibGpz << Constants.X86.MemVSibIndex); Index = RegisterIndex.Invalid; }
internal Memory(Label label, GpRegister index, int shift, int disp, int size = 0) : base(OperandType.Memory, size) { Id = label.Id; MemoryType = MemoryType.Label; Displacement = disp; Index = index.Index; Flags = (Constants.X86.MemVSibGpz << Constants.X86.MemVSibIndex) + (shift << Constants.X86.MemShiftIndex); }
internal Memory(GpRegister @base, YmmRegister index, int shift, int disp, int size = 0) : base(OperandType.Memory, size) { Id = @base.Index; MemoryType = MemoryType.BaseIndex; Displacement = disp; Index = index.Index; Flags = GetGpdFlags(@base) + (Constants.X86.MemVSibYmm << Constants.X86.MemVSibIndex) + (shift << Constants.X86.MemShiftIndex); }
public static Memory ZWordPtrAbs(IntPtr pAbs, GpRegister index, int shift = 0, int disp = 0) { return(PtrAbs(pAbs, index, shift, disp, 64)); }
public static Memory ZWordPtr(Label label, GpRegister index, int shift, int disp = 0) { return(Ptr(label, index, shift, disp, 64)); }
public static Memory ZWordPtr(GpRegister @base, YmmRegister index, int shift = 0, int disp = 0) { return(Ptr(@base, index, shift, disp, 64)); }
public static Memory ZWordPtr(GpRegister @base, int disp = 0) { return(new Memory(@base, disp, 64)); }
public static Memory TWord(GpRegister @base, XmmRegister index, int shift = 0, int disp = 0) { return(Ptr(@base, index, shift, disp, 10)); }
public static Memory TWord(GpRegister @base, int disp = 0) { return(new Memory(@base, disp, 10)); }
public static Memory Byte(Label label, GpRegister index, int shift, int disp = 0) { return(Ptr(label, index, shift, disp, 1)); }
public static Memory Byte(GpRegister @base, GpRegister index, int shift = 0, int disp = 0) { return(Ptr(@base, index, shift, disp, 1)); }
public static Memory Byte(GpRegister @base, int disp = 0) { return(new Memory(@base, disp, 1)); }
public static Memory Ptr(Label label, GpRegister index, int shift, int disp = 0, int size = 0) { return(new Memory(label, index, shift, disp, size)); }
internal static Memory Ptr(GpRegister @base, YmmRegister index, int shift = 0, int disp = 0, int size = 0) { return(new Memory(@base, index, shift, disp, size)); }
internal static Memory Ptr(GpRegister @base, int disp = 0, int size = 0) { return(new Memory(@base, disp, size)); }
internal GpRegister(GpRegister other) : base(other) { }