Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }