public DeclareDataHandler(Code code) : base(0, -1, -1, OpCodeHandlerFlags.DeclareData, Encodable.Any, OperandSize.None, AddressSize.None, null, Array2.Empty <Op>()) { elemLength = code switch { Code.DeclareByte => 1, Code.DeclareWord => 2, Code.DeclareDword => 4, Code.DeclareQword => 8, _ => throw new InvalidOperationException(), }; }
public DeclareDataHandler(Code code) : base(code, 0, 0, OpCodeHandlerFlags.DeclareData, Encodable.Any, OperandSize.None, AddressSize.None, null, Array2.Empty <Op>()) { switch (code) { case Code.DeclareByte: elemLength = 1; break; case Code.DeclareWord: elemLength = 2; break; case Code.DeclareDword: elemLength = 4; break; case Code.DeclareQword: elemLength = 8; break; default: throw new InvalidOperationException(); } }
public InvalidHandler() : base(0, -1, -1, OpCodeHandlerFlags.None, Encodable.Any, OperandSize.None, AddressSize.None, null, Array2.Empty <Op>()) { }
static Info[] GetMemorySizes() { var ptr = new FormatterString("ptr"); var dword_ptr = new[] { new FormatterString("dword"), ptr }; MemorySizes.dword_ptr = dword_ptr; var qword_ptr = new[] { new FormatterString("qword"), ptr }; MemorySizes.qword_ptr = qword_ptr; var mmword_ptr = new[] { new FormatterString("mmword"), ptr }; MemorySizes.mmword_ptr = mmword_ptr; var xmmword_ptr = new[] { new FormatterString("xmmword"), ptr }; MemorySizes.xmmword_ptr = xmmword_ptr; var oword_ptr = new[] { new FormatterString("oword"), ptr }; MemorySizes.oword_ptr = oword_ptr; var byte_ptr = new[] { new FormatterString("byte"), ptr }; var word_ptr = new[] { new FormatterString("word"), ptr }; var ymmword_ptr = new[] { new FormatterString("ymmword"), ptr }; var zmmword_ptr = new[] { new FormatterString("zmmword"), ptr }; var fword_ptr = new[] { new FormatterString("fword"), ptr }; var tbyte_ptr = new[] { new FormatterString("tbyte"), ptr }; var fpuenv14_ptr = new[] { new FormatterString("fpuenv14"), ptr }; var fpuenv28_ptr = new[] { new FormatterString("fpuenv28"), ptr }; var fpustate108_ptr = new[] { new FormatterString("fpustate108"), ptr }; var fpustate94_ptr = new[] { new FormatterString("fpustate94"), ptr }; var dword_bcst = new[] { new FormatterString("dword"), new FormatterString("bcst") }; var qword_bcst = new[] { new FormatterString("qword"), new FormatterString("bcst") }; var infos = new Info[IcedConstants.NumberOfMemorySizes]; const int SizeKindShift = 5; const int MemoryKeywordsMask = 0x1F; var data = new ushort[IcedConstants.NumberOfMemorySizes] { // GENERATOR-BEGIN: MemorySizes // ⚠️This was generated by GENERATOR!🦹♂️ (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.byte_ptr | ((uint)Size.S1 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.byte_ptr | ((uint)Size.S1 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S6 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.oword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S6 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)Size.S14 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)Size.S28 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpustate94_ptr | ((uint)Size.S94 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpustate108_ptr | ((uint)Size.S108 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S512 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S512 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), // GENERATOR-END: MemorySizes }; var sizes = new ushort[] { 0, 1, 2, 4, 6, 8, 10, 14, 16, 28, 32, 64, 94, 108, 512, }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; var keywords = ((MemoryKeywords)(d & MemoryKeywordsMask)) switch { MemoryKeywords.None => Array2.Empty <FormatterString>(), MemoryKeywords.byte_ptr => byte_ptr, MemoryKeywords.dword_bcst => dword_bcst, MemoryKeywords.dword_ptr => dword_ptr, MemoryKeywords.fpuenv14_ptr => fpuenv14_ptr, MemoryKeywords.fpuenv28_ptr => fpuenv28_ptr, MemoryKeywords.fpustate108_ptr => fpustate108_ptr, MemoryKeywords.fpustate94_ptr => fpustate94_ptr, MemoryKeywords.fword_ptr => fword_ptr, MemoryKeywords.oword_ptr => oword_ptr, MemoryKeywords.qword_bcst => qword_bcst, MemoryKeywords.qword_ptr => qword_ptr, MemoryKeywords.tbyte_ptr => tbyte_ptr, MemoryKeywords.word_ptr => word_ptr, MemoryKeywords.xmmword_ptr => xmmword_ptr, MemoryKeywords.ymmword_ptr => ymmword_ptr, MemoryKeywords.zmmword_ptr => zmmword_ptr, _ => throw new InvalidOperationException(), }; infos[i] = new Info(i >= (int)IcedConstants.FirstBroadcastMemorySize, sizes[d >> SizeKindShift], keywords); } return(infos); }
/// <summary>Converts an enumerable to an array using the same logic as List{T}.</summary> /// <param name="source">The enumerable to convert.</param> /// <param name="length">The number of items stored in the resulting array, 0-indexed.</param> /// <returns> /// The resulting array. The length of the array may be greater than <paramref name="length"/>, /// which is the actual number of elements in the array. /// </returns> internal static T[] ToArray <T>(IEnumerable <T> source, out int length) { if (source is ICollection <T> ic) { int count = ic.Count; if (count != 0) { // Allocate an array of the desired size, then copy the elements into it. Note that this has the same // issue regarding concurrency as other existing collections like List<T>. If the collection size // concurrently changes between the array allocation and the CopyTo, we could end up either getting an // exception from overrunning the array (if the size went up) or we could end up not filling as many // items as 'count' suggests (if the size went down). This is only an issue for concurrent collections // that implement ICollection<T>, which as of .NET 4.6 is just ConcurrentDictionary<TKey, TValue>. T[] arr = new T[count]; ic.CopyTo(arr, 0); length = count; return(arr); } } else { using (var en = source.GetEnumerator()) { if (en.MoveNext()) { const int DefaultCapacity = 4; T[] arr = new T[DefaultCapacity]; arr[0] = en.Current; int count = 1; while (en.MoveNext()) { if (count == arr.Length) { // MaxArrayLength is defined in Array.MaxArrayLength and in gchelpers in CoreCLR. // It represents the maximum number of elements that can be in an array where // the size of the element is greater than one byte; a separate, slightly larger constant, // is used when the size of the element is one. const int MaxArrayLength = 0x7FEFFFFF; // This is the same growth logic as in List<T>: // If the array is currently empty, we make it a default size. Otherwise, we attempt to // double the size of the array. Doubling will overflow once the size of the array reaches // 2^30, since doubling to 2^31 is 1 larger than Int32.MaxValue. In that case, we instead // constrain the length to be MaxArrayLength (this overflow check works because of the // cast to uint). Because a slightly larger constant is used when T is one byte in size, we // could then end up in a situation where arr.Length is MaxArrayLength or slightly larger, such // that we constrain newLength to be MaxArrayLength but the needed number of elements is actually // larger than that. For that case, we then ensure that the newLength is large enough to hold // the desired capacity. This does mean that in the very rare case where we've grown to such a // large size, each new element added after MaxArrayLength will end up doing a resize. int newLength = count << 1; if ((uint)newLength > MaxArrayLength) { newLength = MaxArrayLength <= count ? count + 1 : MaxArrayLength; } Array.Resize(ref arr, newLength); } arr[count++] = en.Current; } length = count; return(arr); } } } length = 0; return(Array2.Empty <T>()); }
static Info[] GetMemorySizes() { var ptr = new FormatterString("ptr"); var byte_ptr = new[] { new FormatterString("byte"), ptr }; var word_ptr = new[] { new FormatterString("word"), ptr }; var dword_ptr = new[] { new FormatterString("dword"), ptr }; var qword_ptr = new[] { new FormatterString("qword"), ptr }; var xmmword_ptr = new[] { new FormatterString("xmmword"), ptr }; var ymmword_ptr = new[] { new FormatterString("ymmword"), ptr }; var zmmword_ptr = new[] { new FormatterString("zmmword"), ptr }; var fword_ptr = new[] { new FormatterString("fword"), ptr }; var tbyte_ptr = new[] { new FormatterString("tbyte"), ptr }; var fpuenv14_ptr = new[] { new FormatterString("fpuenv14"), ptr }; var fpuenv28_ptr = new[] { new FormatterString("fpuenv28"), ptr }; var fpustate108_ptr = new[] { new FormatterString("fpustate108"), ptr }; var fpustate94_ptr = new[] { new FormatterString("fpustate94"), ptr }; var infos = new Info[IcedConstants.NumberOfMemorySizes]; const int BroadcastToKindShift = 5; const int MemoryKeywordsMask = 0x1F; #if HAS_SPAN ReadOnlySpan <byte> #else byte[] #endif data = new byte[IcedConstants.NumberOfMemorySizes] { // GENERATOR-BEGIN: MemorySizes // ⚠️This was generated by GENERATOR!🦹♂️ (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate94_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate108_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), // GENERATOR-END: MemorySizes }; var b1to2 = new FormatterString("1to2"); var b1to4 = new FormatterString("1to4"); var b1to8 = new FormatterString("1to8"); var b1to16 = new FormatterString("1to16"); for (int i = 0; i < infos.Length; i++) { var d = data[i]; var keywords = ((MemoryKeywords)(d & MemoryKeywordsMask)) switch { MemoryKeywords.None => Array2.Empty <FormatterString>(), MemoryKeywords.byte_ptr => byte_ptr, MemoryKeywords.dword_ptr => dword_ptr, MemoryKeywords.fpuenv14_ptr => fpuenv14_ptr, MemoryKeywords.fpuenv28_ptr => fpuenv28_ptr, MemoryKeywords.fpustate108_ptr => fpustate108_ptr, MemoryKeywords.fpustate94_ptr => fpustate94_ptr, MemoryKeywords.fword_ptr => fword_ptr, MemoryKeywords.qword_ptr => qword_ptr, MemoryKeywords.tbyte_ptr => tbyte_ptr, MemoryKeywords.word_ptr => word_ptr, MemoryKeywords.xmmword_ptr => xmmword_ptr, MemoryKeywords.ymmword_ptr => ymmword_ptr, MemoryKeywords.zmmword_ptr => zmmword_ptr, _ => throw new InvalidOperationException(), }; var bcstTo = ((BroadcastToKind)(d >> BroadcastToKindShift)) switch { BroadcastToKind.None => default,
/// <summary> /// Computes the hash /// </summary> public byte[] ComputeHash() { hasher.TransformFinalBlock(Array2.Empty <byte>(), 0, 0); return(hasher.Hash); }
static Info[] GetMemorySizes() { // GENERATOR-BEGIN: ConstData // ⚠️This was generated by GENERATOR!🦹♂️ const int BroadcastToKindShift = 5; const int MemoryKeywordsMask = 31; var @byte = new FormatterString("byte"); var ptr = new FormatterString("ptr"); var byte_ptr = new[] { @byte, ptr }; var dword = new FormatterString("dword"); var dword_ptr = new[] { dword, ptr }; var fpuenv14 = new FormatterString("fpuenv14"); var fpuenv14_ptr = new[] { fpuenv14, ptr }; var fpuenv28 = new FormatterString("fpuenv28"); var fpuenv28_ptr = new[] { fpuenv28, ptr }; var fpustate108 = new FormatterString("fpustate108"); var fpustate108_ptr = new[] { fpustate108, ptr }; var fpustate94 = new FormatterString("fpustate94"); var fpustate94_ptr = new[] { fpustate94, ptr }; var fword = new FormatterString("fword"); var fword_ptr = new[] { fword, ptr }; var qword = new FormatterString("qword"); var qword_ptr = new[] { qword, ptr }; var tbyte = new FormatterString("tbyte"); var tbyte_ptr = new[] { tbyte, ptr }; var word = new FormatterString("word"); var word_ptr = new[] { word, ptr }; var xmmword = new FormatterString("xmmword"); var xmmword_ptr = new[] { xmmword, ptr }; var ymmword = new FormatterString("ymmword"); var ymmword_ptr = new[] { ymmword, ptr }; var zmmword = new FormatterString("zmmword"); var zmmword_ptr = new[] { zmmword, ptr }; var mem384 = new FormatterString("mem384"); var mem384_ptr = new[] { mem384, ptr }; var empty = new FormatterString(""); var b1to2 = new FormatterString("1to2"); var b1to4 = new FormatterString("1to4"); var b1to8 = new FormatterString("1to8"); var b1to16 = new FormatterString("1to16"); // GENERATOR-END: ConstData var infos = new Info[IcedConstants.NumberOfMemorySizes]; #if HAS_SPAN ReadOnlySpan <byte> #else byte[] #endif data = new byte[IcedConstants.NumberOfMemorySizes] { // GENERATOR-BEGIN: MemorySizes // ⚠️This was generated by GENERATOR!🦹♂️ 0x00, 0x01, 0x0A, 0x02, 0x08, 0x08, 0x0B, 0x0C, 0x0D, 0x01, 0x0A, 0x02, 0x08, 0x0B, 0x0C, 0x0D, 0x02, 0x07, 0x09, 0x0A, 0x02, 0x08, 0x02, 0x08, 0x08, 0x0B, 0x07, 0x07, 0x0A, 0x02, 0x08, 0x09, 0x0B, 0x0A, 0x03, 0x04, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x09, 0x0E, 0x0B, 0x0A, 0x0A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x22, 0x22, 0x22, 0x42, 0x42, 0x28, 0x28, 0x28, 0x42, 0x28, 0x62, 0x62, 0x48, 0x48, 0x48, 0x62, 0x48, 0x82, 0x82, 0x68, 0x68, 0x68, 0x82, 0x68, 0x42, 0x62, 0x82, 0x28, 0x48, 0x68, 0x28, 0x48, 0x68, 0x42, 0x62, 0x82, // GENERATOR-END: MemorySizes }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; var keywords = (d & MemoryKeywordsMask) switch { // GENERATOR-BEGIN: MemoryKeywordsSwitch // ⚠️This was generated by GENERATOR!🦹♂️ 0x00 => Array2.Empty <FormatterString>(), 0x01 => byte_ptr, 0x02 => dword_ptr, 0x03 => fpuenv14_ptr, 0x04 => fpuenv28_ptr, 0x05 => fpustate108_ptr, 0x06 => fpustate94_ptr, 0x07 => fword_ptr, 0x08 => qword_ptr, 0x09 => tbyte_ptr, 0x0A => word_ptr, 0x0B => xmmword_ptr, 0x0C => ymmword_ptr, 0x0D => zmmword_ptr, 0x0E => mem384_ptr, // GENERATOR-END: MemoryKeywordsSwitch _ => throw new InvalidOperationException(), }; var bcstTo = (d >> BroadcastToKindShift) switch { // GENERATOR-BEGIN: BroadcastToKindSwitch // ⚠️This was generated by GENERATOR!🦹♂️ 0x00 => empty, 0x01 => b1to2, 0x02 => b1to4, 0x03 => b1to8, 0x04 => b1to16, // GENERATOR-END: BroadcastToKindSwitch _ => throw new InvalidOperationException(), }; infos[i] = new Info(keywords, bcstTo); } return(infos); }
static Info[] GetMemorySizes() { var ptr = "ptr"; var byte_ptr = new string[] { "byte", ptr }; var word_ptr = new string[] { "word", ptr }; var dword_ptr = new string[] { "dword", ptr }; var qword_ptr = new string[] { "qword", ptr }; var xmmword_ptr = new string[] { "xmmword", ptr }; var ymmword_ptr = new string[] { "ymmword", ptr }; var zmmword_ptr = new string[] { "zmmword", ptr }; var fword_ptr = new string[] { "fword", ptr }; var tbyte_ptr = new string[] { "tbyte", ptr }; var fpuenv14_ptr = new string[] { "fpuenv14", ptr }; var fpuenv28_ptr = new string[] { "fpuenv28", ptr }; var fpustate108_ptr = new string[] { "fpustate108", ptr }; var fpustate94_ptr = new string[] { "fpustate94", ptr }; var infos = new Info[DecoderConstants.NumberOfMemorySizes]; const int BroadcastToKindShift = 5; const int MemoryKeywordsMask = 0x1F; var data = new byte[DecoderConstants.NumberOfMemorySizes] { (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.byte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate94_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.fpustate108_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.None | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.tbyte_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.word_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.xmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.ymmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.zmmword_ptr | ((uint)BroadcastToKind.None << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to2 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.qword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to4 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to8 << BroadcastToKindShift)), (byte)((uint)MemoryKeywords.dword_ptr | ((uint)BroadcastToKind.b1to16 << BroadcastToKindShift)), }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; string[] keywords; switch ((MemoryKeywords)(d & MemoryKeywordsMask)) { case MemoryKeywords.None: keywords = Array2.Empty <string>(); break; case MemoryKeywords.byte_ptr: keywords = byte_ptr; break; case MemoryKeywords.dword_ptr: keywords = dword_ptr; break; case MemoryKeywords.fpuenv14_ptr: keywords = fpuenv14_ptr; break; case MemoryKeywords.fpuenv28_ptr: keywords = fpuenv28_ptr; break; case MemoryKeywords.fpustate108_ptr: keywords = fpustate108_ptr; break; case MemoryKeywords.fpustate94_ptr: keywords = fpustate94_ptr; break; case MemoryKeywords.fword_ptr: keywords = fword_ptr; break; case MemoryKeywords.qword_ptr: keywords = qword_ptr; break; case MemoryKeywords.tbyte_ptr: keywords = tbyte_ptr; break; case MemoryKeywords.word_ptr: keywords = word_ptr; break; case MemoryKeywords.xmmword_ptr: keywords = xmmword_ptr; break; case MemoryKeywords.ymmword_ptr: keywords = ymmword_ptr; break; case MemoryKeywords.zmmword_ptr: keywords = zmmword_ptr; break; default: throw new InvalidOperationException(); } string?bcstTo; switch ((BroadcastToKind)(d >> BroadcastToKindShift)) { case BroadcastToKind.None: bcstTo = null; break; case BroadcastToKind.b1to2: bcstTo = "1to2"; break; case BroadcastToKind.b1to4: bcstTo = "1to4"; break; case BroadcastToKind.b1to8: bcstTo = "1to8"; break; case BroadcastToKind.b1to16: bcstTo = "1to16"; break; default: throw new InvalidOperationException(); } infos[i] = new Info((MemorySize)i, keywords, bcstTo); } return(infos); }
SymbolScopeImpl ReadScope(uint methodRid, GenericParamContext gpContext) { var scopesRidList = pdbMetadata.GetLocalScopeRidList(methodRid); SymbolScopeImpl rootScopeOrNull = null; if (scopesRidList.Count != 0) { var custInfos = ListCache <PdbCustomDebugInfo> .AllocList(); var stack = ListCache <SymbolScopeImpl> .AllocList(); var importScopeBlobReader = new ImportScopeBlobReader(module, pdbMetadata.BlobStream); for (int i = 0; i < scopesRidList.Count; i++) { var rid = scopesRidList[i]; int token = new MDToken(Table.LocalScope, rid).ToInt32(); bool b = pdbMetadata.TablesStream.TryReadLocalScopeRow(rid, out var row); Debug.Assert(b); uint startOffset = row.StartOffset; uint endOffset = startOffset + row.Length; SymbolScopeImpl parent = null; while (stack.Count > 0) { var nextParent = stack[stack.Count - 1]; if (startOffset >= nextParent.StartOffset && endOffset <= nextParent.EndOffset) { parent = nextParent; break; } stack.RemoveAt(stack.Count - 1); } Debug.Assert(!(parent is null) || rootScopeOrNull is null); custInfos.Clear(); GetCustomDebugInfos(token, gpContext, custInfos); var customDebugInfos = custInfos.Count == 0 ? Array2.Empty <PdbCustomDebugInfo>() : custInfos.ToArray(); var scope = new SymbolScopeImpl(this, parent, (int)startOffset, (int)endOffset, customDebugInfos); if (rootScopeOrNull is null) { rootScopeOrNull = scope; } stack.Add(scope); if (!(parent is null)) { parent.childrenList.Add(scope); } scope.importScope = ReadPdbImportScope(ref importScopeBlobReader, row.ImportScope, gpContext); GetEndOfLists(rid, out uint variableListEnd, out uint constantListEnd); ReadVariables(scope, gpContext, row.VariableList, variableListEnd); ReadConstants(scope, row.ConstantList, constantListEnd); } ListCache <SymbolScopeImpl> .Free(ref stack); ListCache <PdbCustomDebugInfo> .Free(ref custInfos); } return(rootScopeOrNull ?? new SymbolScopeImpl(this, null, 0, int.MaxValue, Array2.Empty <PdbCustomDebugInfo>())); }
static Info?GetInfo(TypeDef td) { if (td is null) { return(null); } if (td.IsWindowsRuntime) { return(null); } UTF8String scope = null, identifier = null; var tia = td.CustomAttributes.Find("System.Runtime.InteropServices.TypeIdentifierAttribute"); if (tia is not null) { if (tia.ConstructorArguments.Count >= 2) { if (tia.ConstructorArguments[0].Type.GetElementType() != ElementType.String) { return(null); } if (tia.ConstructorArguments[1].Type.GetElementType() != ElementType.String) { return(null); } scope = tia.ConstructorArguments[0].Value as UTF8String ?? tia.ConstructorArguments[0].Value as string; identifier = tia.ConstructorArguments[1].Value as UTF8String ?? tia.ConstructorArguments[1].Value as string; } } else { var asm = td.Module?.Assembly; if (asm is null) { return(null); } bool isTypeLib = asm.CustomAttributes.IsDefined("System.Runtime.InteropServices.ImportedFromTypeLibAttribute") || asm.CustomAttributes.IsDefined("System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute"); if (!isTypeLib) { return(null); } } if (UTF8String.IsNull(identifier)) { CustomAttribute gca; if (td.IsInterface && td.IsImport) { gca = td.CustomAttributes.Find("System.Runtime.InteropServices.GuidAttribute"); } else { var asm = td.Module?.Assembly; if (asm is null) { return(null); } gca = asm.CustomAttributes.Find("System.Runtime.InteropServices.GuidAttribute"); } if (gca is null) { return(null); } if (gca.ConstructorArguments.Count < 1) { return(null); } if (gca.ConstructorArguments[0].Type.GetElementType() != ElementType.String) { return(null); } scope = gca.ConstructorArguments[0].Value as UTF8String ?? gca.ConstructorArguments[0].Value as string; var ns = td.Namespace; var name = td.Name; if (UTF8String.IsNullOrEmpty(ns)) { identifier = name; } else if (UTF8String.IsNullOrEmpty(name)) { identifier = new UTF8String(Concat(ns.Data, (byte)'.', Array2.Empty <byte>())); } else { identifier = new UTF8String(Concat(ns.Data, (byte)'.', name.Data)); } } return(new Info(scope, identifier)); }
public DeclareDataHandler(Code code) : base(EncFlags2.None, EncFlags3.Bit16or32 | EncFlags3.Bit64, true, null, Array2.Empty <Op>()) { elemLength = code switch { Code.DeclareByte => 1, Code.DeclareWord => 2, Code.DeclareDword => 4, Code.DeclareQword => 8, _ => throw new InvalidOperationException(), }; }
public InvalidHandler() : base(EncFlags2.None, EncFlags3.Bit16or32 | EncFlags3.Bit64, false, null, Array2.Empty <Op>()) { }
static Info[] GetMemorySizes() { var ptr = "ptr"; var dword_ptr = new string[] { "dword", ptr }; MemorySizes.dword_ptr = dword_ptr; var qword_ptr = new string[] { "qword", ptr }; MemorySizes.qword_ptr = qword_ptr; var mmword_ptr = new string[] { "mmword", ptr }; MemorySizes.mmword_ptr = mmword_ptr; var xmmword_ptr = new string[] { "xmmword", ptr }; MemorySizes.xmmword_ptr = xmmword_ptr; var oword_ptr = new string[] { "oword", ptr }; MemorySizes.oword_ptr = oword_ptr; var byte_ptr = new string[] { "byte", ptr }; var word_ptr = new string[] { "word", ptr }; var ymmword_ptr = new string[] { "ymmword", ptr }; var zmmword_ptr = new string[] { "zmmword", ptr }; var fword_ptr = new string[] { "fword", ptr }; var tbyte_ptr = new string[] { "tbyte", ptr }; var fpuenv14_ptr = new string[] { "fpuenv14", ptr }; var fpuenv28_ptr = new string[] { "fpuenv28", ptr }; var fpustate108_ptr = new string[] { "fpustate108", ptr }; var fpustate94_ptr = new string[] { "fpustate94", ptr }; var dword_bcst = new string[] { "dword", "bcst" }; var qword_bcst = new string[] { "qword", "bcst" }; var infos = new Info[DecoderConstants.NumberOfMemorySizes]; const int SizeKindShift = 5; const int MemoryKeywordsMask = 0x1F; var data = new ushort[DecoderConstants.NumberOfMemorySizes] { (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.byte_ptr | ((uint)Size.S1 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.byte_ptr | ((uint)Size.S1 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S6 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.oword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S6 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fword_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpuenv14_ptr | ((uint)Size.S14 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpuenv28_ptr | ((uint)Size.S28 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpustate94_ptr | ((uint)Size.S94 << SizeKindShift)), (ushort)((uint)MemoryKeywords.fpustate108_ptr | ((uint)Size.S108 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S512 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S512 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.None | ((uint)Size.S0 << SizeKindShift)), (ushort)((uint)MemoryKeywords.tbyte_ptr | ((uint)Size.S10 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.word_ptr | ((uint)Size.S2 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_ptr | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_ptr | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.xmmword_ptr | ((uint)Size.S16 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.ymmword_ptr | ((uint)Size.S32 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.zmmword_ptr | ((uint)Size.S64 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.qword_bcst | ((uint)Size.S8 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), (ushort)((uint)MemoryKeywords.dword_bcst | ((uint)Size.S4 << SizeKindShift)), }; var sizes = new ushort[] { 0, 1, 2, 4, 6, 8, 10, 14, 16, 28, 32, 64, 94, 108, 512, }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; string[] keywords; switch ((MemoryKeywords)(d & MemoryKeywordsMask)) { case MemoryKeywords.None: keywords = Array2.Empty <string>(); break; case MemoryKeywords.byte_ptr: keywords = byte_ptr; break; case MemoryKeywords.dword_bcst: keywords = dword_bcst; break; case MemoryKeywords.dword_ptr: keywords = dword_ptr; break; case MemoryKeywords.fpuenv14_ptr: keywords = fpuenv14_ptr; break; case MemoryKeywords.fpuenv28_ptr: keywords = fpuenv28_ptr; break; case MemoryKeywords.fpustate108_ptr: keywords = fpustate108_ptr; break; case MemoryKeywords.fpustate94_ptr: keywords = fpustate94_ptr; break; case MemoryKeywords.fword_ptr: keywords = fword_ptr; break; case MemoryKeywords.oword_ptr: keywords = oword_ptr; break; case MemoryKeywords.qword_bcst: keywords = qword_bcst; break; case MemoryKeywords.qword_ptr: keywords = qword_ptr; break; case MemoryKeywords.tbyte_ptr: keywords = tbyte_ptr; break; case MemoryKeywords.word_ptr: keywords = word_ptr; break; case MemoryKeywords.xmmword_ptr: keywords = xmmword_ptr; break; case MemoryKeywords.ymmword_ptr: keywords = ymmword_ptr; break; case MemoryKeywords.zmmword_ptr: keywords = zmmword_ptr; break; default: throw new InvalidOperationException(); } infos[i] = new Info((MemorySize)i, i >= (int)MemorySize.Broadcast64_UInt32, sizes[d >> SizeKindShift], keywords); } return(infos); }
static Type GetTypeUsingTypeBuilder(IntPtr address) { if (moduleBuilder == null) { return(null); } var tb = moduleBuilder.DefineType(GetNextTypeName()); var mb = tb.DefineMethod(METHOD_NAME, SR.MethodAttributes.Static, typeof(void), Array2.Empty <Type>()); try { if (setMethodBodyMethodInfo != null) { return(GetTypeNET45(tb, mb, address)); } else { return(GetTypeNET40(tb, mb, address)); } } catch { moduleBuilder = null; return(null); } }
/// <summary> /// Reads data just like <see cref="Read"/>, but returns an empty array if /// offset is invalid /// </summary> /// <param name="offset">Offset of data</param> /// <returns>The data</returns> public byte[] ReadNoNull(uint offset) => Read(offset) ?? Array2.Empty <byte>();
static Info[] GetMemorySizes() { // GENERATOR-BEGIN: ConstData // ⚠️This was generated by GENERATOR!🦹♂️ const int SizeKindShift = 5; const int MemoryKeywordsMask = 31; var @byte = new FormatterString("byte"); var ptr = new FormatterString("ptr"); var byte_ptr = new[] { @byte, ptr }; var dword = new FormatterString("dword"); var bcst = new FormatterString("bcst"); var dword_bcst = new[] { dword, bcst }; var dword_ptr = new[] { dword, ptr }; var fpuenv14 = new FormatterString("fpuenv14"); var fpuenv14_ptr = new[] { fpuenv14, ptr }; var fpuenv28 = new FormatterString("fpuenv28"); var fpuenv28_ptr = new[] { fpuenv28, ptr }; var fpustate108 = new FormatterString("fpustate108"); var fpustate108_ptr = new[] { fpustate108, ptr }; var fpustate94 = new FormatterString("fpustate94"); var fpustate94_ptr = new[] { fpustate94, ptr }; var fword = new FormatterString("fword"); var fword_ptr = new[] { fword, ptr }; var oword = new FormatterString("oword"); var oword_ptr = new[] { oword, ptr }; var qword = new FormatterString("qword"); var qword_bcst = new[] { qword, bcst }; var qword_ptr = new[] { qword, ptr }; var tbyte = new FormatterString("tbyte"); var tbyte_ptr = new[] { tbyte, ptr }; var word = new FormatterString("word"); var word_ptr = new[] { word, ptr }; var xmmword = new FormatterString("xmmword"); var xmmword_ptr = new[] { xmmword, ptr }; var ymmword = new FormatterString("ymmword"); var ymmword_ptr = new[] { ymmword, ptr }; var zmmword = new FormatterString("zmmword"); var zmmword_ptr = new[] { zmmword, ptr }; var mem384 = new FormatterString("mem384"); var mem384_ptr = new[] { mem384, ptr }; var mmword = new FormatterString("mmword"); var mmword_ptr = new[] { mmword, ptr }; var sizes = new ushort[] { 0, 1, 2, 4, 6, 8, 10, 14, 16, 28, 32, 48, 64, 94, 108, 512, }; // GENERATOR-END: ConstData MemorySizes.mmword_ptr = mmword_ptr; MemorySizes.dword_ptr = dword_ptr; MemorySizes.oword_ptr = oword_ptr; MemorySizes.qword_ptr = qword_ptr; MemorySizes.xmmword_ptr = xmmword_ptr; var infos = new Info[IcedConstants.MemorySizeEnumCount]; var data = new ushort[IcedConstants.MemorySizeEnumCount] { // GENERATOR-BEGIN: MemorySizes // ⚠️This was generated by GENERATOR!🦹♂️ 0x0000, 0x0021, 0x004D, 0x0063, 0x00AB, 0x00AB, 0x010E, 0x014F, 0x0190, 0x0021, 0x004D, 0x0063, 0x00AB, 0x010E, 0x014F, 0x0190, 0x0063, 0x0088, 0x00CC, 0x004D, 0x0063, 0x00AB, 0x0063, 0x00AB, 0x00AB, 0x0109, 0x0088, 0x00C8, 0x004D, 0x0063, 0x00AB, 0x00CC, 0x010E, 0x004D, 0x00E4, 0x0125, 0x01A7, 0x01C6, 0x01E0, 0x01E0, 0x0000, 0x0000, 0x00CC, 0x0190, 0x0000, 0x00CC, 0x0171, 0x0190, 0x004D, 0x004D, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x00AB, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x014F, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0190, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x0062, 0x00AA, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x0062, 0x00AA, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x0062, 0x00AA, 0x0062, 0x0062, 0x0062, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x00AA, 0x0062, 0x0062, 0x0062, // GENERATOR-END: MemorySizes }; for (int i = 0; i < infos.Length; i++) { var d = data[i]; var keywords = (d & MemoryKeywordsMask) switch { // GENERATOR-BEGIN: MemoryKeywordsSwitch // ⚠️This was generated by GENERATOR!🦹♂️ 0x00 => Array2.Empty <FormatterString>(), 0x01 => byte_ptr, 0x02 => dword_bcst, 0x03 => dword_ptr, 0x04 => fpuenv14_ptr, 0x05 => fpuenv28_ptr, 0x06 => fpustate108_ptr, 0x07 => fpustate94_ptr, 0x08 => fword_ptr, 0x09 => oword_ptr, 0x0A => qword_bcst, 0x0B => qword_ptr, 0x0C => tbyte_ptr, 0x0D => word_ptr, 0x0E => xmmword_ptr, 0x0F => ymmword_ptr, 0x10 => zmmword_ptr, 0x11 => mem384_ptr, // GENERATOR-END: MemoryKeywordsSwitch _ => throw new InvalidOperationException(), }; infos[i] = new Info(i >= (int)IcedConstants.FirstBroadcastMemorySize, sizes[d >> SizeKindShift], keywords); } return(infos); }
public static bool TryGet_RuntimeInformation_Architecture(out Machine machine) { machine = 0; var processArchitectureMethod = System_Runtime_InteropServices_RuntimeInformation?.GetMethod("get_ProcessArchitecture", Array2.Empty <Type>()); if (processArchitectureMethod is null) { return(false); } var result = processArchitectureMethod.Invoke(null, Array2.Empty <object>()); return(TryGetArchitecture((int)result, out machine)); }