diff --git a/Iced/Intel/UsedMemory.cs b/Iced/Intel/UsedMemory.cs index 76420c8e8..99e3661cc 100644 --- a/Iced/Intel/UsedMemory.cs +++ b/Iced/Intel/UsedMemory.cs @@ -18,7 +18,6 @@ */ #if !NO_INSTR_INFO -using System; using System.Diagnostics; using System.Text; @@ -32,14 +31,8 @@ namespace Iced.Intel { readonly byte baseReg; readonly byte indexReg; readonly byte memorySize; - readonly byte flags; - - [Flags] - enum Flags : byte { - ScaleMask = 0x0F, - OpAccessShift = 4, - OpAccessMask = 7, - } + readonly byte scale; + readonly byte access; /// /// Effective segment register @@ -59,7 +52,7 @@ namespace Iced.Intel { /// /// Index scale (1, 2, 4 or 8) /// - public int Scale => flags & (int)Flags.ScaleMask; + public int Scale => scale; /// /// Displacement @@ -74,7 +67,7 @@ namespace Iced.Intel { /// /// Memory access /// - public OpAccess Access => (OpAccess)((flags >> (int)Flags.OpAccessShift) & (int)Flags.OpAccessMask); + public OpAccess Access => (OpAccess)access; /// /// Constructor @@ -97,10 +90,9 @@ namespace Iced.Intel { Debug.Assert((uint)memorySize <= byte.MaxValue); this.memorySize = (byte)memorySize; Debug.Assert(scale == 1 || scale == 2 || scale == 4 || scale == 8); - uint flags = (uint)scale; - Debug.Assert((uint)access <= (uint)Flags.OpAccessMask); - flags |= (uint)access << (int)Flags.OpAccessShift; - this.flags = (byte)flags; + this.scale = (byte)scale; + Debug.Assert((uint)access <= byte.MaxValue); + this.access = (byte)access; } /// @@ -124,10 +116,9 @@ namespace Iced.Intel { Debug.Assert((uint)memorySize <= byte.MaxValue); this.memorySize = (byte)memorySize; Debug.Assert(scale == 1 || scale == 2 || scale == 4 || scale == 8); - uint flags = (uint)scale; - Debug.Assert((uint)access <= (uint)Flags.OpAccessMask); - flags |= (uint)access << (int)Flags.OpAccessShift; - this.flags = (byte)flags; + this.scale = (byte)scale; + Debug.Assert((uint)access <= byte.MaxValue); + this.access = (byte)access; } ///