static MemorySizeInfo[] GetMemorySizeInfos() { #if HAS_SPAN System.ReadOnlySpan <byte> #else var #endif data = new byte[IcedConstants.MemorySizeEnumCount * 3] { // GENERATOR-BEGIN: MemorySizeInfoTable // ⚠️This was generated by GENERATOR!🦹♂️ 0x00, 0x00, 0x00, 0x01, 0x21, 0x00, 0x02, 0x42, 0x00, 0x03, 0x63, 0x00, 0x04, 0xA5, 0x00, 0x05, 0xA5, 0x00, 0x06, 0x08, 0x01, 0x07, 0x4A, 0x01, 0x08, 0x8C, 0x01, 0x09, 0x21, 0x80, 0x0A, 0x42, 0x80, 0x0B, 0x63, 0x80, 0x0C, 0xA5, 0x80, 0x0D, 0x08, 0x81, 0x0E, 0x4A, 0x81, 0x0F, 0x8C, 0x81, 0x10, 0x63, 0x00, 0x11, 0x84, 0x00, 0x12, 0xC6, 0x00, 0x13, 0x42, 0x00, 0x14, 0x63, 0x00, 0x15, 0xA5, 0x00, 0x02, 0x43, 0x00, 0x03, 0x65, 0x00, 0x18, 0xA5, 0x00, 0x19, 0x08, 0x01, 0x1A, 0x84, 0x00, 0x1B, 0xC6, 0x00, 0x1C, 0x42, 0x80, 0x1D, 0x63, 0x80, 0x1E, 0xA5, 0x80, 0x1F, 0xC6, 0x80, 0x20, 0x08, 0x81, 0x21, 0x42, 0x80, 0x22, 0xE7, 0x00, 0x23, 0x29, 0x01, 0x24, 0xAD, 0x01, 0x25, 0xCE, 0x01, 0x26, 0xEF, 0x01, 0x27, 0xEF, 0x01, 0x28, 0x00, 0x00, 0x29, 0x00, 0x00, 0x2A, 0xC6, 0x80, 0x2B, 0x8C, 0x01, 0x2C, 0x00, 0x00, 0x2D, 0xC6, 0x00, 0x2E, 0x6B, 0x01, 0x2F, 0x8C, 0x01, 0x01, 0x22, 0x00, 0x09, 0x22, 0x80, 0x01, 0x23, 0x00, 0x09, 0x23, 0x80, 0x02, 0x43, 0x00, 0x0A, 0x43, 0x80, 0x21, 0x43, 0x80, 0x01, 0x25, 0x00, 0x09, 0x25, 0x80, 0x02, 0x45, 0x00, 0x0A, 0x45, 0x80, 0x03, 0x65, 0x00, 0x0B, 0x65, 0x80, 0x1C, 0x45, 0x80, 0x1D, 0x65, 0x80, 0x01, 0x28, 0x00, 0x09, 0x28, 0x80, 0x02, 0x48, 0x00, 0x0A, 0x48, 0x80, 0x03, 0x68, 0x00, 0x0B, 0x68, 0x80, 0x04, 0xA8, 0x00, 0x05, 0xA8, 0x00, 0x0C, 0xA8, 0x80, 0x1C, 0x48, 0x80, 0x1D, 0x68, 0x80, 0x1E, 0xA8, 0x80, 0x36, 0x68, 0x80, 0x01, 0x2A, 0x00, 0x09, 0x2A, 0x80, 0x02, 0x4A, 0x00, 0x0A, 0x4A, 0x80, 0x03, 0x6A, 0x00, 0x0B, 0x6A, 0x80, 0x04, 0xAA, 0x00, 0x05, 0xAA, 0x00, 0x0C, 0xAA, 0x80, 0x06, 0x0A, 0x01, 0x0D, 0x0A, 0x81, 0x1C, 0x4A, 0x80, 0x1D, 0x6A, 0x80, 0x1E, 0xAA, 0x80, 0x20, 0x0A, 0x81, 0x36, 0x6A, 0x80, 0x01, 0x2C, 0x00, 0x09, 0x2C, 0x80, 0x02, 0x4C, 0x00, 0x0A, 0x4C, 0x80, 0x03, 0x6C, 0x00, 0x0B, 0x6C, 0x80, 0x04, 0xAC, 0x00, 0x05, 0xAC, 0x00, 0x0C, 0xAC, 0x80, 0x06, 0x0C, 0x01, 0x1D, 0x6C, 0x80, 0x1E, 0xAC, 0x80, 0x36, 0x6C, 0x80, 0x03, 0x63, 0x00, 0x0B, 0x63, 0x80, 0x1D, 0x63, 0x80, 0x03, 0x63, 0x00, 0x0B, 0x63, 0x80, 0x04, 0xA5, 0x00, 0x05, 0xA5, 0x00, 0x0C, 0xA5, 0x80, 0x1D, 0x63, 0x80, 0x1E, 0xA5, 0x80, 0x03, 0x63, 0x00, 0x0B, 0x63, 0x80, 0x04, 0xA5, 0x00, 0x05, 0xA5, 0x00, 0x0C, 0xA5, 0x80, 0x1D, 0x63, 0x80, 0x1E, 0xA5, 0x80, 0x03, 0x63, 0x00, 0x0B, 0x63, 0x80, 0x04, 0xA5, 0x00, 0x05, 0xA5, 0x00, 0x0C, 0xA5, 0x80, 0x1D, 0x63, 0x80, 0x1E, 0xA5, 0x80, 0x0A, 0x43, 0x80, 0x0A, 0x43, 0x80, 0x0A, 0x43, 0x80, 0x03, 0x65, 0x00, 0x03, 0x65, 0x00, 0x03, 0x65, 0x00, 0x0B, 0x65, 0x80, 0x0B, 0x65, 0x80, 0x0B, 0x65, 0x80, 0x21, 0x43, 0x80, 0x21, 0x43, 0x80, 0x21, 0x43, 0x80, // GENERATOR-END: MemorySizeInfoTable }; // GENERATOR-BEGIN: ConstData // ⚠️This was generated by GENERATOR!🦹♂️ const ushort IsSigned = 32768; const uint SizeMask = 31; const int SizeShift = 0; const int ElemSizeShift = 5; var sizes = new ushort[] { 0, 1, 2, 4, 6, 8, 10, 14, 16, 28, 32, 48, 64, 94, 108, 512, }; // GENERATOR-END: ConstData var infos = new MemorySizeInfo[IcedConstants.MemorySizeEnumCount]; for (int i = 0, j = 0; i < infos.Length; i++, j += 3) { var elementType = (MemorySize)data[j]; uint value = (uint)(data[j + 2] << 8) | data[j + 1]; var size = sizes[(int)((value >> SizeShift) & SizeMask)]; var elementSize = sizes[(int)((value >> ElemSizeShift) & SizeMask)]; infos[i] = new MemorySizeInfo((MemorySize)i, size, elementSize, elementType, (value & IsSigned) != 0, i >= (int)IcedConstants.FirstBroadcastMemorySize); } return(infos); }
static MemorySizeInfo[] GetMemorySizeInfos() { #if HAS_SPAN System.ReadOnlySpan <byte> #else var #endif data = new byte[IcedConstants.NumberOfMemorySizes * 3] { // GENERATOR-BEGIN: MemorySizeInfoTable // ⚠️This was generated by GENERATOR!🦹♂️ (byte)MemorySize.Unknown, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S1 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt128, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.UInt256, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S32 << 4)), 0, (byte)MemorySize.UInt512, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S64 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S1 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Int128, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.Int256, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S32 << 4)), 1, (byte)MemorySize.Int512, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S64 << 4)), 1, (byte)MemorySize.SegPtr16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.SegPtr32, (byte)((uint)SizeKind.S6 | ((uint)SizeKind.S6 << 4)), 0, (byte)MemorySize.SegPtr64, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 0, (byte)MemorySize.WordOffset, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.DwordOffset, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.QwordOffset, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Bnd32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Bnd64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.Fword6, (byte)((uint)SizeKind.S6 | ((uint)SizeKind.S6 << 4)), 0, (byte)MemorySize.Fword10, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 0, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float80, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 1, (byte)MemorySize.Float128, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.FpuEnv14, (byte)((uint)SizeKind.S14 | ((uint)SizeKind.S14 << 4)), 0, (byte)MemorySize.FpuEnv28, (byte)((uint)SizeKind.S28 | ((uint)SizeKind.S28 << 4)), 0, (byte)MemorySize.FpuState94, (byte)((uint)SizeKind.S94 | ((uint)SizeKind.S94 << 4)), 0, (byte)MemorySize.FpuState108, (byte)((uint)SizeKind.S108 | ((uint)SizeKind.S108 << 4)), 0, (byte)MemorySize.Fxsave_512Byte, (byte)((uint)SizeKind.S512 | ((uint)SizeKind.S512 << 4)), 0, (byte)MemorySize.Fxsave64_512Byte, (byte)((uint)SizeKind.S512 | ((uint)SizeKind.S512 << 4)), 0, (byte)MemorySize.Xsave, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.Xsave64, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.Bcd, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 1, (byte)MemorySize.Tilecfg, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S64 << 4)), 0, (byte)MemorySize.Tile, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Packed32_BFloat16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt128, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.Int128, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float128, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.Packed32_BFloat16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt128, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Packed32_BFloat16, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, // GENERATOR-END: MemorySizeInfoTable }; var sizes = new ushort[] { 0, 1, 2, 4, 6, 8, 10, 14, 16, 28, 32, 64, 94, 108, 512, }; var infos = new MemorySizeInfo[IcedConstants.NumberOfMemorySizes]; for (int i = 0, j = 0; i < infos.Length; i++, j += 3) { var elementType = (MemorySize)data[j]; var b = data[j + 1]; var size = sizes[b & 0xF]; var elementSize = sizes[b >> 4]; infos[i] = new MemorySizeInfo((MemorySize)i, size, elementSize, elementType, data[j + 2] != 0, i >= (int)IcedConstants.FirstBroadcastMemorySize); } return(infos); }
static MemorySizeInfo[] GetMemorySizeInfos() { var data = new byte[DecoderConstants.NumberOfMemorySizes * 3] { (byte)MemorySize.Unknown, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S1 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt128, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.UInt256, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S32 << 4)), 0, (byte)MemorySize.UInt512, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S64 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S1 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Int128, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.Int256, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S32 << 4)), 1, (byte)MemorySize.Int512, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S64 << 4)), 1, (byte)MemorySize.SegPtr16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.SegPtr32, (byte)((uint)SizeKind.S6 | ((uint)SizeKind.S6 << 4)), 0, (byte)MemorySize.SegPtr64, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 0, (byte)MemorySize.WordOffset, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.DwordOffset, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.QwordOffset, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Bound16_WordWord, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Bound32_DwordDword, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Bnd32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Bnd64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.Fword5, (byte)((uint)SizeKind.S5 | ((uint)SizeKind.S5 << 4)), 0, (byte)MemorySize.Fword6, (byte)((uint)SizeKind.S6 | ((uint)SizeKind.S6 << 4)), 0, (byte)MemorySize.Fword10, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 0, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float80, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 1, (byte)MemorySize.Float128, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.FpuEnv14, (byte)((uint)SizeKind.S14 | ((uint)SizeKind.S14 << 4)), 0, (byte)MemorySize.FpuEnv28, (byte)((uint)SizeKind.S28 | ((uint)SizeKind.S28 << 4)), 0, (byte)MemorySize.FpuState94, (byte)((uint)SizeKind.S94 | ((uint)SizeKind.S94 << 4)), 0, (byte)MemorySize.FpuState108, (byte)((uint)SizeKind.S108 | ((uint)SizeKind.S108 << 4)), 0, (byte)MemorySize.Fxsave_512Byte, (byte)((uint)SizeKind.S512 | ((uint)SizeKind.S512 << 4)), 0, (byte)MemorySize.Fxsave64_512Byte, (byte)((uint)SizeKind.S512 | ((uint)SizeKind.S512 << 4)), 0, (byte)MemorySize.Xsave, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.Xsave64, (byte)((uint)SizeKind.S0 | ((uint)SizeKind.S0 << 4)), 0, (byte)MemorySize.Bcd, (byte)((uint)SizeKind.S10 | ((uint)SizeKind.S10 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S2 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Packed32_BFloat16, (byte)((uint)SizeKind.S16 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt128, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.Int128, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.Float16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float128, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S16 << 4)), 1, (byte)MemorySize.Packed32_BFloat16, (byte)((uint)SizeKind.S32 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt8, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S1 << 4)), 0, (byte)MemorySize.Int8, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S1 << 4)), 1, (byte)MemorySize.UInt16, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S2 << 4)), 0, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt128, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S16 << 4)), 0, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Packed32_BFloat16, (byte)((uint)SizeKind.S64 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.UInt52, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.UInt64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 0, (byte)MemorySize.Int64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Float32, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Float64, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S8 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.Int16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.UInt32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 0, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.Int32, (byte)((uint)SizeKind.S8 | ((uint)SizeKind.S4 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, (byte)MemorySize.BFloat16, (byte)((uint)SizeKind.S4 | ((uint)SizeKind.S2 << 4)), 1, }; var sizes = new ushort[] { 0, 1, 2, 4, 5, 6, 8, 10, 14, 16, 28, 32, 64, 94, 108, 512, }; var infos = new MemorySizeInfo[DecoderConstants.NumberOfMemorySizes]; for (int i = 0, j = 0; i < infos.Length; i++, j += 3) { var elementType = (MemorySize)data[j]; var b = data[j + 1]; var size = sizes[b & 0xF]; var elementSize = sizes[b >> 4]; infos[i] = new MemorySizeInfo((MemorySize)i, size, elementSize, elementType, data[j + 2] != 0, i >= (int)MemorySize.Broadcast64_UInt32); } return(infos); }