diff --git a/src/csharp/Intel/Generator/Decoder/DecoderTable_EVEX.cs b/src/csharp/Intel/Generator/Decoder/DecoderTable_EVEX.cs index 4f0b16c17..1c35400e9 100644 --- a/src/csharp/Intel/Generator/Decoder/DecoderTable_EVEX.cs +++ b/src/csharp/Intel/Generator/Decoder/DecoderTable_EVEX.cs @@ -13,45 +13,142 @@ namespace Generator.Decoder { public const string Handlers_MAP6 = nameof(Handlers_MAP6); public static (string name, object?[] handlers)[] CreateHandlers(GenTypes genTypes) { - var evexEnum = genTypes[TypeIds.EvexOpCodeHandlerKind]; - var regEnum = genTypes[TypeIds.Register]; - var codeEnum = genTypes[TypeIds.Code]; - var tupleTypeEnum = genTypes[TypeIds.TupleType]; + var kind = genTypes[TypeIds.EvexOpCodeHandlerKind]; + var reg = genTypes[TypeIds.Register]; + var code = genTypes[TypeIds.Code]; + var tuple = genTypes[TypeIds.TupleType]; - var invalid = new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Invalid)] }; + var RM = kind[nameof(EvexOpCodeHandlerKind.RM)]; + var Group = kind[nameof(EvexOpCodeHandlerKind.Group)]; + var W = kind[nameof(EvexOpCodeHandlerKind.W)]; + var MandatoryPrefix2 = kind[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)]; + var VectorLength = kind[nameof(EvexOpCodeHandlerKind.VectorLength)]; + var VectorLength_er = kind[nameof(EvexOpCodeHandlerKind.VectorLength_er)]; + var Ed_V_Ib = kind[nameof(EvexOpCodeHandlerKind.Ed_V_Ib)]; + var Ev_VX = kind[nameof(EvexOpCodeHandlerKind.Ev_VX)]; + var Ev_VX_Ib = kind[nameof(EvexOpCodeHandlerKind.Ev_VX_Ib)]; + var Gv_W_er = kind[nameof(EvexOpCodeHandlerKind.Gv_W_er)]; + var GvM_VX_Ib = kind[nameof(EvexOpCodeHandlerKind.GvM_VX_Ib)]; + var HkWIb_3 = kind[nameof(EvexOpCodeHandlerKind.HkWIb_3)]; + var HkWIb_3b = kind[nameof(EvexOpCodeHandlerKind.HkWIb_3b)]; + var HWIb = kind[nameof(EvexOpCodeHandlerKind.HWIb)]; + var KkHW_3 = kind[nameof(EvexOpCodeHandlerKind.KkHW_3)]; + var KkHW_3b = kind[nameof(EvexOpCodeHandlerKind.KkHW_3b)]; + var KkHWIb_sae_3 = kind[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3)]; + var KkHWIb_sae_3b = kind[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)]; + var KkHWIb_3 = kind[nameof(EvexOpCodeHandlerKind.KkHWIb_3)]; + var KkHWIb_3b = kind[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)]; + var KkWIb_3 = kind[nameof(EvexOpCodeHandlerKind.KkWIb_3)]; + var KkWIb_3b = kind[nameof(EvexOpCodeHandlerKind.KkWIb_3b)]; + var KP1HW = kind[nameof(EvexOpCodeHandlerKind.KP1HW)]; + var KR = kind[nameof(EvexOpCodeHandlerKind.KR)]; + var MV = kind[nameof(EvexOpCodeHandlerKind.MV)]; + var V_H_Ev_er = kind[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)]; + var V_H_Ev_Ib = kind[nameof(EvexOpCodeHandlerKind.V_H_Ev_Ib)]; + var VHM = kind[nameof(EvexOpCodeHandlerKind.VHM)]; + var VHW_3 = kind[nameof(EvexOpCodeHandlerKind.VHW_3)]; + var VHW_4 = kind[nameof(EvexOpCodeHandlerKind.VHW_4)]; + var VHWIb = kind[nameof(EvexOpCodeHandlerKind.VHWIb)]; + var VK = kind[nameof(EvexOpCodeHandlerKind.VK)]; + var Vk_VSIB = kind[nameof(EvexOpCodeHandlerKind.Vk_VSIB)]; + var VkEv_REXW_2 = kind[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)]; + var VkEv_REXW_3 = kind[nameof(EvexOpCodeHandlerKind.VkEv_REXW_3)]; + var VkHM = kind[nameof(EvexOpCodeHandlerKind.VkHM)]; + var VkHW_3 = kind[nameof(EvexOpCodeHandlerKind.VkHW_3)]; + var VkHW_3b = kind[nameof(EvexOpCodeHandlerKind.VkHW_3b)]; + var VkHW_5 = kind[nameof(EvexOpCodeHandlerKind.VkHW_5)]; + var VkHW_er_4 = kind[nameof(EvexOpCodeHandlerKind.VkHW_er_4)]; + var VkHW_er_4b = kind[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)]; + var VkHWIb_3 = kind[nameof(EvexOpCodeHandlerKind.VkHWIb_3)]; + var VkHWIb_3b = kind[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)]; + var VkHWIb_5 = kind[nameof(EvexOpCodeHandlerKind.VkHWIb_5)]; + var VkHWIb_er_4 = kind[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)]; + var VkHWIb_er_4b = kind[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)]; + var VkM = kind[nameof(EvexOpCodeHandlerKind.VkM)]; + var VkW_3 = kind[nameof(EvexOpCodeHandlerKind.VkW_3)]; + var VkW_3b = kind[nameof(EvexOpCodeHandlerKind.VkW_3b)]; + var VkW_4 = kind[nameof(EvexOpCodeHandlerKind.VkW_4)]; + var VkW_4b = kind[nameof(EvexOpCodeHandlerKind.VkW_4b)]; + var VkW_er_4 = kind[nameof(EvexOpCodeHandlerKind.VkW_er_4)]; + var VkW_er_5 = kind[nameof(EvexOpCodeHandlerKind.VkW_er_5)]; + var VkW_er_6 = kind[nameof(EvexOpCodeHandlerKind.VkW_er_6)]; + var VkWIb_3 = kind[nameof(EvexOpCodeHandlerKind.VkWIb_3)]; + var VkWIb_3b = kind[nameof(EvexOpCodeHandlerKind.VkWIb_3b)]; + var VkWIb_er = kind[nameof(EvexOpCodeHandlerKind.VkWIb_er)]; + var VM = kind[nameof(EvexOpCodeHandlerKind.VM)]; + var VSIB_k1 = kind[nameof(EvexOpCodeHandlerKind.VSIB_k1)]; + var VSIB_k1_VX = kind[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)]; + var VW = kind[nameof(EvexOpCodeHandlerKind.VW)]; + var VW_er = kind[nameof(EvexOpCodeHandlerKind.VW_er)]; + var VX_Ev = kind[nameof(EvexOpCodeHandlerKind.VX_Ev)]; + var WkHV = kind[nameof(EvexOpCodeHandlerKind.WkHV)]; + var WkV_3 = kind[nameof(EvexOpCodeHandlerKind.WkV_3)]; + var WkV_4a = kind[nameof(EvexOpCodeHandlerKind.WkV_4a)]; + var WkV_4b = kind[nameof(EvexOpCodeHandlerKind.WkV_4b)]; + var WkVIb = kind[nameof(EvexOpCodeHandlerKind.WkVIb)]; + var WkVIb_er = kind[nameof(EvexOpCodeHandlerKind.WkVIb_er)]; + var WV = kind[nameof(EvexOpCodeHandlerKind.WV)]; + var VkHW_er_ur_3 = kind[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3)]; + var VkHW_er_ur_3b = kind[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)]; + + var xmm0 = reg[nameof(Register.XMM0)]; + var ymm0 = reg[nameof(Register.YMM0)]; + var zmm0 = reg[nameof(Register.ZMM0)]; + + var N1 = tuple[nameof(TupleType.N1)]; + var N2 = tuple[nameof(TupleType.N2)]; + var N4 = tuple[nameof(TupleType.N4)]; + var N8 = tuple[nameof(TupleType.N8)]; + var N16 = tuple[nameof(TupleType.N16)]; + var N32 = tuple[nameof(TupleType.N32)]; + var N64 = tuple[nameof(TupleType.N64)]; + var N8b4 = tuple[nameof(TupleType.N8b4)]; + var N16b4 = tuple[nameof(TupleType.N16b4)]; + var N32b4 = tuple[nameof(TupleType.N32b4)]; + var N64b4 = tuple[nameof(TupleType.N64b4)]; + var N16b8 = tuple[nameof(TupleType.N16b8)]; + var N32b8 = tuple[nameof(TupleType.N32b8)]; + var N64b8 = tuple[nameof(TupleType.N64b8)]; + var N4b2 = tuple[nameof(TupleType.N4b2)]; + var N8b2 = tuple[nameof(TupleType.N8b2)]; + var N16b2 = tuple[nameof(TupleType.N16b2)]; + var N32b2 = tuple[nameof(TupleType.N32b2)]; + var N64b2 = tuple[nameof(TupleType.N64b2)]; + + var invalid = new object[] { kind[nameof(EvexOpCodeHandlerKind.Invalid)] }; var handlers = new (string name, object?[] handlers)[] { ("handlers_Grp_0F71", new object[8] { invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlw_xmm_k1z_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrlw_ymm_k1z_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrlw_zmm_k1z_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { HkWIb_3, xmm0, code[nameof(Code.EVEX_Vpsrlw_xmm_k1z_xmmm128_imm8)], N16 }, + new object[] { HkWIb_3, ymm0, code[nameof(Code.EVEX_Vpsrlw_ymm_k1z_ymmm256_imm8)], N32 }, + new object[] { HkWIb_3, zmm0, code[nameof(Code.EVEX_Vpsrlw_zmm_k1z_zmmm512_imm8)], N64 }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraw_xmm_k1z_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsraw_ymm_k1z_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsraw_zmm_k1z_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { HkWIb_3, xmm0, code[nameof(Code.EVEX_Vpsraw_xmm_k1z_xmmm128_imm8)], N16 }, + new object[] { HkWIb_3, ymm0, code[nameof(Code.EVEX_Vpsraw_ymm_k1z_ymmm256_imm8)], N32 }, + new object[] { HkWIb_3, zmm0, code[nameof(Code.EVEX_Vpsraw_zmm_k1z_zmmm512_imm8)], N64 }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllw_xmm_k1z_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsllw_ymm_k1z_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsllw_zmm_k1z_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { HkWIb_3, xmm0, code[nameof(Code.EVEX_Vpsllw_xmm_k1z_xmmm128_imm8)], N16 }, + new object[] { HkWIb_3, ymm0, code[nameof(Code.EVEX_Vpsllw_ymm_k1z_ymmm256_imm8)], N32 }, + new object[] { HkWIb_3, zmm0, code[nameof(Code.EVEX_Vpsllw_zmm_k1z_zmmm512_imm8)], N64 }, }, invalid, invalid, @@ -61,47 +158,47 @@ namespace Generator.Decoder { ("handlers_Grp_0F72", new object[8] { - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprord_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprord_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprord_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vprord_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vprord_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vprord_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprorq_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprorq_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprorq_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vprorq_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vprorq_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vprorq_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprold_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprold_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprold_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vprold_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vprold_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vprold_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprolq_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprolq_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprolq_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vprolq_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vprolq_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vprolq_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrld_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrld_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrld_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpsrld_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpsrld_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpsrld_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, invalid, }, @@ -109,31 +206,31 @@ namespace Generator.Decoder { invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrad_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrad_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrad_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpsrad_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpsrad_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpsrad_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraq_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsraq_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsraq_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpsraq_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpsraq_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpsraq_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpslld_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpslld_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpslld_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpslld_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpslld_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpslld_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, invalid, }, @@ -147,50 +244,50 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlq_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrlq_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrlq_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpsrlq_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpsrlq_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpsrlq_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HWIb)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrldq_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HWIb)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrldq_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HWIb)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrldq_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { HWIb, xmm0, code[nameof(Code.EVEX_Vpsrldq_xmm_xmmm128_imm8)], N16 }, + new object[] { HWIb, ymm0, code[nameof(Code.EVEX_Vpsrldq_ymm_ymmm256_imm8)], N32 }, + new object[] { HWIb, zmm0, code[nameof(Code.EVEX_Vpsrldq_zmm_zmmm512_imm8)], N64 }, }, invalid, invalid, }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllq_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsllq_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsllq_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { HkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpsllq_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { HkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpsllq_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { HkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpsllq_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HWIb)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpslldq_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HWIb)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpslldq_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.HWIb)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpslldq_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { HWIb, xmm0, code[nameof(Code.EVEX_Vpslldq_xmm_xmmm128_imm8)], N16 }, + new object[] { HWIb, ymm0, code[nameof(Code.EVEX_Vpslldq_ymm_ymmm256_imm8)], N32 }, + new object[] { HWIb, zmm0, code[nameof(Code.EVEX_Vpslldq_zmm_zmmm512_imm8)], N64 }, }, invalid, invalid, @@ -200,35 +297,35 @@ namespace Generator.Decoder { ("handlers_Grp_0F38C6", new object[8] { invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf0dps_vm32z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vgatherpf0dps_vm32z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf0dpd_vm32y_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, ymm0, code[nameof(Code.EVEX_Vgatherpf0dpd_vm32y_k1)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf1dps_vm32z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vgatherpf1dps_vm32z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf1dpd_vm32y_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, ymm0, code[nameof(Code.EVEX_Vgatherpf1dpd_vm32y_k1)], N8 }, }, }, invalid, @@ -236,35 +333,35 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf0dps_vm32z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vscatterpf0dps_vm32z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf0dpd_vm32y_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, ymm0, code[nameof(Code.EVEX_Vscatterpf0dpd_vm32y_k1)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf1dps_vm32z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vscatterpf1dps_vm32z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf1dpd_vm32y_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, ymm0, code[nameof(Code.EVEX_Vscatterpf1dpd_vm32y_k1)], N8 }, }, }, invalid, @@ -276,35 +373,35 @@ namespace Generator.Decoder { ("handlers_Grp_0F38C7", new object[8] { invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf0qps_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vgatherpf0qps_vm64z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf0qpd_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vgatherpf0qpd_vm64z_k1)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf1qps_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vgatherpf1qps_vm64z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherpf1qpd_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vgatherpf1qpd_vm64z_k1)], N8 }, }, }, invalid, @@ -312,35 +409,35 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf0qps_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vscatterpf0qps_vm64z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf0qpd_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vscatterpf0qpd_vm64z_k1)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf1qps_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vscatterpf1qps_vm64z_k1)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterpf1qpd_vm64z_k1)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VSIB_k1, zmm0, code[nameof(Code.EVEX_Vscatterpf1qpd_vm64z_k1)], N8 }, }, }, invalid, @@ -352,12 +449,12 @@ namespace Generator.Decoder { (Handlers_0F38, new object[0x100] { // 00 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshufb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshufb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshufb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpshufb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpshufb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpshufb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, @@ -365,12 +462,12 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaddubsw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaddubsw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaddubsw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmaddubsw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmaddubsw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmaddubsw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, @@ -383,37 +480,37 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmulhrsw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmulhrsw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmulhrsw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmulhrsw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmulhrsw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmulhrsw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermilps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermilps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermilps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermilps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermilps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermilps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermilpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermilpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermilpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermilpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermilpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermilpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -423,146 +520,146 @@ namespace Generator.Decoder { invalid, // 10 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsrlvw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsrlvw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsrlvw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovuswb_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovuswb_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovuswb_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovuswb_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovuswb_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovuswb_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsravw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsravw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsravw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsravw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsravw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsravw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovusdb_xmmm32_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovusdb_xmmm64_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovusdb_xmmm128_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovusdb_xmmm32_k1z_xmm)], N4 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovusdb_xmmm64_k1z_ymm)], N8 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovusdb_xmmm128_k1z_zmm)], N16 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllvw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsllvw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsllvw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsllvw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsllvw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsllvw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqb_xmmm16_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqb_xmmm32_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqb_xmmm64_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovusqb_xmmm16_k1z_xmm)], N2 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovusqb_xmmm32_k1z_ymm)], N4 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovusqb_xmmm64_k1z_zmm)], N8 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_6)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2ps_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)], true, false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_6)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2ps_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)], true, false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_6)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2ps_zmm_k1z_ymmm256_sae)], tupleTypeEnum[nameof(TupleType.N32)], true, false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_6, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2ps_xmm_k1z_xmmm64)], N8, true, false }, + new object[] { VkW_er_6, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2ps_ymm_k1z_xmmm128)], N16, true, false }, + new object[] { VkW_er_6, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtph2ps_zmm_k1z_ymmm256_sae)], N32, true, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovusdw_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovusdw_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovusdw_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovusdw_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovusdw_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovusdw_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprorvd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprorvd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprorvd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vprorvd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vprorvd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vprorvd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprorvq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprorvq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprorvq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vprorvq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vprorvq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vprorvq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqw_xmmm32_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqw_xmmm64_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqw_xmmm128_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovusqw_xmmm32_k1z_xmm)], N4 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovusqw_xmmm64_k1z_ymm)], N8 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovusqw_xmmm128_k1z_zmm)], N16 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprolvd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprolvd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprolvd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vprolvd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vprolvd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vprolvd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vprolvq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vprolvq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vprolvq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vprolvq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vprolvq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vprolvq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqd_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqd_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovusqd_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovusqd_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovusqd_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovusqd_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -571,111 +668,111 @@ namespace Generator.Decoder { invalid, // 18 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastss_xmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastss_ymm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastss_zmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vbroadcastss_xmm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vbroadcastss_ymm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vbroadcastss_zmm_k1z_xmmm32)], N4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf32x2_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf32x2_zmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vbroadcastf32x2_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vbroadcastf32x2_zmm_k1z_xmmm64)], N8 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastsd_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastsd_zmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vbroadcastsd_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vbroadcastsd_zmm_k1z_xmmm64)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf32x4_ymm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf32x4_zmm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkM, ymm0, code[nameof(Code.EVEX_Vbroadcastf32x4_ymm_k1z_m128)], N16 }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcastf32x4_zmm_k1z_m128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf64x2_ymm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf64x2_zmm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkM, ymm0, code[nameof(Code.EVEX_Vbroadcastf64x2_ymm_k1z_m128)], N16 }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcastf64x2_zmm_k1z_m128)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf32x8_zmm_k1z_m256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcastf32x8_zmm_k1z_m256)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcastf64x4_zmm_k1z_m256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcastf64x4_zmm_k1z_m256)], N32 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpabsb_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpabsb_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpabsb_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpabsb_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpabsb_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpabsb_zmm_k1z_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpabsw_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpabsw_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpabsw_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpabsw_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpabsw_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpabsw_zmm_k1z_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpabsd_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpabsd_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpabsd_zmm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vpabsd_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vpabsd_ymm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vpabsd_zmm_k1z_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpabsq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpabsq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpabsq_zmm_k1z_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vpabsq_xmm_k1z_xmmm128b64)], N16b8 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vpabsq_ymm_k1z_ymmm256b64)], N32b8 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vpabsq_zmm_k1z_zmmm512b64)], N64b8 }, }, }, invalid, @@ -683,272 +780,272 @@ namespace Generator.Decoder { }, // 20 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbw_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbw_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbw_zmm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbw_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbw_ymm_k1z_xmmm128)], N16 }, + new object[] { VkW_4, zmm0, ymm0, code[nameof(Code.EVEX_Vpmovsxbw_zmm_k1z_ymmm256)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovswb_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovswb_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovswb_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovswb_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovswb_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovswb_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbd_xmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbd_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbd_zmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbd_xmm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbd_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbd_zmm_k1z_xmmm128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsdb_xmmm32_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsdb_xmmm64_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovsdb_xmmm128_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsdb_xmmm32_k1z_xmm)], N4 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovsdb_xmmm64_k1z_ymm)], N8 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovsdb_xmmm128_k1z_zmm)], N16 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbq_xmm_k1z_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbq_ymm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxbq_zmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbq_xmm_k1z_xmmm16)], N2 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbq_ymm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxbq_zmm_k1z_xmmm64)], N8 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqb_xmmm16_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqb_xmmm32_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqb_xmmm64_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsqb_xmmm16_k1z_xmm)], N2 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovsqb_xmmm32_k1z_ymm)], N4 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovsqb_xmmm64_k1z_zmm)], N8 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxwd_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxwd_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxwd_zmm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxwd_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovsxwd_ymm_k1z_xmmm128)], N16 }, + new object[] { VkW_4, zmm0, ymm0, code[nameof(Code.EVEX_Vpmovsxwd_zmm_k1z_ymmm256)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsdw_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsdw_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovsdw_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsdw_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovsdw_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovsdw_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxwq_xmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxwq_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxwq_zmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxwq_xmm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovsxwq_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxwq_zmm_k1z_xmmm128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqw_xmmm32_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqw_xmmm64_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqw_xmmm128_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsqw_xmmm32_k1z_xmm)], N4 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovsqw_xmmm64_k1z_ymm)], N8 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovsqw_xmmm128_k1z_zmm)], N16 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxdq_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxdq_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsxdq_zmm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsxdq_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovsxdq_ymm_k1z_xmmm128)], N16 }, + new object[] { VkW_4, zmm0, ymm0, code[nameof(Code.EVEX_Vpmovsxdq_zmm_k1z_ymmm256)], N32 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqd_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqd_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovsqd_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovsqd_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovsqd_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovsqd_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestmb_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestmb_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestmb_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vptestmb_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vptestmb_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vptestmb_kr_k1_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestmw_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestmw_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestmw_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vptestmw_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vptestmw_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vptestmw_kr_k1_zmm_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestnmb_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestnmb_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestnmb_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vptestnmb_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vptestnmb_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vptestnmb_kr_k1_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestnmw_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestnmw_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestnmw_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vptestnmw_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vptestnmw_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vptestnmw_kr_k1_zmm_zmmm512)], N64 }, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestmd_kr_k1_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestmd_kr_k1_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestmd_kr_k1_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vptestmd_kr_k1_xmm_xmmm128b32)], N16b4 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vptestmd_kr_k1_ymm_ymmm256b32)], N32b4 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vptestmd_kr_k1_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestmq_kr_k1_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestmq_kr_k1_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestmq_kr_k1_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vptestmq_kr_k1_xmm_xmmm128b64)], N16b8 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vptestmq_kr_k1_ymm_ymmm256b64)], N32b8 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vptestmq_kr_k1_zmm_zmmm512b64)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestnmd_kr_k1_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestnmd_kr_k1_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestnmd_kr_k1_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vptestnmd_kr_k1_xmm_xmmm128b32)], N16b4 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vptestnmd_kr_k1_ymm_ymmm256b32)], N32b4 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vptestnmd_kr_k1_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vptestnmq_kr_k1_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vptestnmq_kr_k1_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vptestnmq_kr_k1_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vptestnmq_kr_k1_xmm_xmmm128b64)], N16b8 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vptestnmq_kr_k1_ymm_ymmm256b64)], N32b8 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vptestnmq_kr_k1_zmm_zmmm512b64)], N64b8 }, }, }, invalid, }, // 28 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmuldq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmuldq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmuldq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmuldq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmuldq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmuldq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2b_xmm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2b_ymm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2b_zmm_kr)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VK, xmm0, code[nameof(Code.EVEX_Vpmovm2b_xmm_kr)] }, + new object[] { VK, ymm0, code[nameof(Code.EVEX_Vpmovm2b_ymm_kr)] }, + new object[] { VK, zmm0, code[nameof(Code.EVEX_Vpmovm2b_zmm_kr)] }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2w_xmm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2w_ymm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2w_zmm_kr)] }, + new object[] { VectorLength, + new object[] { VK, xmm0, code[nameof(Code.EVEX_Vpmovm2w_xmm_kr)] }, + new object[] { VK, ymm0, code[nameof(Code.EVEX_Vpmovm2w_ymm_kr)] }, + new object[] { VK, zmm0, code[nameof(Code.EVEX_Vpmovm2w_zmm_kr)] }, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqq_kr_k1_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqq_kr_k1_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqq_kr_k1_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vpcmpeqq_kr_k1_xmm_xmmm128b64)], N16b8 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vpcmpeqq_kr_k1_ymm_ymmm256b64)], N32b8 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vpcmpeqq_kr_k1_zmm_zmmm512b64)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovb2m_kr_xmm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovb2m_kr_ymm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovb2m_kr_zmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KR, xmm0, code[nameof(Code.EVEX_Vpmovb2m_kr_xmm)] }, + new object[] { KR, ymm0, code[nameof(Code.EVEX_Vpmovb2m_kr_ymm)] }, + new object[] { KR, zmm0, code[nameof(Code.EVEX_Vpmovb2m_kr_zmm)] }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovw2m_kr_xmm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovw2m_kr_ymm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovw2m_kr_zmm)] }, + new object[] { VectorLength, + new object[] { KR, xmm0, code[nameof(Code.EVEX_Vpmovw2m_kr_xmm)] }, + new object[] { KR, ymm0, code[nameof(Code.EVEX_Vpmovw2m_kr_ymm)] }, + new object[] { KR, zmm0, code[nameof(Code.EVEX_Vpmovw2m_kr_zmm)] }, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VM)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovntdqa_xmm_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VM)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovntdqa_ymm_m256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovntdqa_zmm_m512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VM, xmm0, code[nameof(Code.EVEX_Vmovntdqa_xmm_m128)], N16 }, + new object[] { VM, ymm0, code[nameof(Code.EVEX_Vmovntdqa_ymm_m256)], N32 }, + new object[] { VM, zmm0, code[nameof(Code.EVEX_Vmovntdqa_zmm_m512)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastmb2q_xmm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastmb2q_ymm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastmb2q_zmm_kr)] }, + new object[] { VectorLength, + new object[] { VK, xmm0, code[nameof(Code.EVEX_Vpbroadcastmb2q_xmm_kr)] }, + new object[] { VK, ymm0, code[nameof(Code.EVEX_Vpbroadcastmb2q_ymm_kr)] }, + new object[] { VK, zmm0, code[nameof(Code.EVEX_Vpbroadcastmb2q_zmm_kr)] }, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpackusdw_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpackusdw_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpackusdw_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpackusdw_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpackusdw_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpackusdw_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscalefps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscalefps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscalefps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vscalefps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vscalefps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vscalefps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscalefpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscalefpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscalefpd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vscalefpd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vscalefpd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vscalefpd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscalefss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscalefsd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vscalefss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vscalefsd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, @@ -957,136 +1054,136 @@ namespace Generator.Decoder { invalid, // 30 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbw_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbw_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbw_zmm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbw_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbw_ymm_k1z_xmmm128)], N16 }, + new object[] { VkW_4, zmm0, ymm0, code[nameof(Code.EVEX_Vpmovzxbw_zmm_k1z_ymmm256)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovwb_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovwb_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovwb_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovwb_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovwb_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovwb_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbd_xmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbd_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbd_zmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbd_xmm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbd_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbd_zmm_k1z_xmmm128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovdb_xmmm32_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovdb_xmmm64_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovdb_xmmm128_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovdb_xmmm32_k1z_xmm)], N4 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovdb_xmmm64_k1z_ymm)], N8 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovdb_xmmm128_k1z_zmm)], N16 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbq_xmm_k1z_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbq_ymm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxbq_zmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbq_xmm_k1z_xmmm16)], N2 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbq_ymm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxbq_zmm_k1z_xmmm64)], N8 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovqb_xmmm16_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovqb_xmmm32_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovqb_xmmm64_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovqb_xmmm16_k1z_xmm)], N2 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovqb_xmmm32_k1z_ymm)], N4 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovqb_xmmm64_k1z_zmm)], N8 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxwd_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxwd_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxwd_zmm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxwd_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovzxwd_ymm_k1z_xmmm128)], N16 }, + new object[] { VkW_4, zmm0, ymm0, code[nameof(Code.EVEX_Vpmovzxwd_zmm_k1z_ymmm256)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovdw_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovdw_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovdw_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovdw_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovdw_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovdw_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxwq_xmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxwq_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxwq_zmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxwq_xmm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovzxwq_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxwq_zmm_k1z_xmmm128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovqw_xmmm32_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovqw_xmmm64_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovqw_xmmm128_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovqw_xmmm32_k1z_xmm)], N4 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovqw_xmmm64_k1z_ymm)], N8 }, + new object[] { WkV_4a, xmm0, zmm0, code[nameof(Code.EVEX_Vpmovqw_xmmm128_k1z_zmm)], N16 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxdq_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxdq_ymm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovzxdq_zmm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovzxdq_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpmovzxdq_ymm_k1z_xmmm128)], N16 }, + new object[] { VkW_4, zmm0, ymm0, code[nameof(Code.EVEX_Vpmovzxdq_zmm_k1z_ymmm256)], N32 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovqd_xmmm64_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovqd_xmmm128_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4a)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovqd_ymmm256_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_4a, xmm0, xmm0, code[nameof(Code.EVEX_Vpmovqd_xmmm64_k1z_xmm)], N8 }, + new object[] { WkV_4a, xmm0, ymm0, code[nameof(Code.EVEX_Vpmovqd_xmmm128_k1z_ymm)], N16 }, + new object[] { WkV_4a, ymm0, zmm0, code[nameof(Code.EVEX_Vpmovqd_ymmm256_k1z_zmm)], N32 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtq_kr_k1_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtq_kr_k1_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtq_kr_k1_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vpcmpgtq_kr_k1_xmm_xmmm128b64)], N16b8 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vpcmpgtq_kr_k1_ymm_ymmm256b64)], N32b8 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vpcmpgtq_kr_k1_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1094,138 +1191,138 @@ namespace Generator.Decoder { }, // 38 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminsb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminsb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminsb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpminsb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpminsb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpminsb_zmm_k1z_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2d_xmm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2d_ymm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2d_zmm_kr)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VK, xmm0, code[nameof(Code.EVEX_Vpmovm2d_xmm_kr)] }, + new object[] { VK, ymm0, code[nameof(Code.EVEX_Vpmovm2d_ymm_kr)] }, + new object[] { VK, zmm0, code[nameof(Code.EVEX_Vpmovm2d_zmm_kr)] }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2q_xmm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2q_ymm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovm2q_zmm_kr)] }, + new object[] { VectorLength, + new object[] { VK, xmm0, code[nameof(Code.EVEX_Vpmovm2q_xmm_kr)] }, + new object[] { VK, ymm0, code[nameof(Code.EVEX_Vpmovm2q_ymm_kr)] }, + new object[] { VK, zmm0, code[nameof(Code.EVEX_Vpmovm2q_zmm_kr)] }, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminsd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminsd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminsd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpminsd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpminsd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpminsd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminsq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminsq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminsq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpminsq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpminsq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpminsq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovd2m_kr_xmm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovd2m_kr_ymm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovd2m_kr_zmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KR, xmm0, code[nameof(Code.EVEX_Vpmovd2m_kr_xmm)] }, + new object[] { KR, ymm0, code[nameof(Code.EVEX_Vpmovd2m_kr_ymm)] }, + new object[] { KR, zmm0, code[nameof(Code.EVEX_Vpmovd2m_kr_zmm)] }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmovq2m_kr_xmm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmovq2m_kr_ymm)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KR)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmovq2m_kr_zmm)] }, + new object[] { VectorLength, + new object[] { KR, xmm0, code[nameof(Code.EVEX_Vpmovq2m_kr_xmm)] }, + new object[] { KR, ymm0, code[nameof(Code.EVEX_Vpmovq2m_kr_ymm)] }, + new object[] { KR, zmm0, code[nameof(Code.EVEX_Vpmovq2m_kr_zmm)] }, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminuw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminuw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminuw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpminuw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpminuw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpminuw_zmm_k1z_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastmw2d_xmm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastmw2d_ymm_kr)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VK)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastmw2d_zmm_kr)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VK, xmm0, code[nameof(Code.EVEX_Vpbroadcastmw2d_xmm_kr)] }, + new object[] { VK, ymm0, code[nameof(Code.EVEX_Vpbroadcastmw2d_ymm_kr)] }, + new object[] { VK, zmm0, code[nameof(Code.EVEX_Vpbroadcastmw2d_zmm_kr)] }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminud_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminud_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminud_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpminud_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpminud_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpminud_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminuq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminuq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminuq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpminuq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpminuq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpminuq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmaxsb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmaxsb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmaxsb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmaxsd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmaxsd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmaxsd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmaxsq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmaxsq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmaxsq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxuw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxuw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxuw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmaxuw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmaxuw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmaxuw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxud_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxud_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxud_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmaxud_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmaxud_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmaxud_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxuq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxuq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxuq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmaxuq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmaxuq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmaxuq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1233,113 +1330,113 @@ namespace Generator.Decoder { }, // 40 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmulld_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmulld_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmulld_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmulld_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmulld_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmulld_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmullq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmullq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmullq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmullq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmullq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmullq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetexpps_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgetexpps_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgetexpps_zmm_k1z_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vgetexpps_xmm_k1z_xmmm128b32)], N16b4, true }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vgetexpps_ymm_k1z_ymmm256b32)], N32b4, true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vgetexpps_zmm_k1z_zmmm512b32_sae)], N64b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetexppd_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgetexppd_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgetexppd_zmm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vgetexppd_xmm_k1z_xmmm128b64)], N16b8, true }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vgetexppd_ymm_k1z_ymmm256b64)], N32b8, true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vgetexppd_zmm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetexpss_xmm_k1z_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetexpsd_xmm_k1z_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vgetexpss_xmm_k1z_xmm_xmmm32_sae)], N4, true }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vgetexpsd_xmm_k1z_xmm_xmmm64_sae)], N8, true }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vplzcntd_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vplzcntd_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vplzcntd_zmm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vplzcntd_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vplzcntd_ymm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vplzcntd_zmm_k1z_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vplzcntq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vplzcntq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vplzcntq_zmm_k1z_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vplzcntq_xmm_k1z_xmmm128b64)], N16b8 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vplzcntq_ymm_k1z_ymmm256b64)], N32b8 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vplzcntq_zmm_k1z_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsrlvd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsrlvd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsrlvd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsrlvq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsrlvq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsrlvq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsrlvq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsravd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsravd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsravd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsravd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsravd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsravd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsravq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsravq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsravq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsravq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsravq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsravq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllvd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsllvd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsllvd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsllvd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsllvd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsllvd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllvq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsllvq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsllvq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsllvq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsllvq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsllvq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1351,162 +1448,162 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcp14ps_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrcp14ps_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrcp14ps_zmm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vrcp14ps_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vrcp14ps_ymm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vrcp14ps_zmm_k1z_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcp14pd_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrcp14pd_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrcp14pd_zmm_k1z_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vrcp14pd_xmm_k1z_xmmm128b64)], N16b8 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vrcp14pd_ymm_k1z_ymmm256b64)], N32b8 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vrcp14pd_zmm_k1z_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcp14ss_xmm_k1z_xmm_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcp14sd_xmm_k1z_xmm_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vrcp14ss_xmm_k1z_xmm_xmmm32)], N4 }, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vrcp14sd_xmm_k1z_xmm_xmmm64)], N8 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14ps_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14ps_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14ps_zmm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vrsqrt14ps_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vrsqrt14ps_ymm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vrsqrt14ps_zmm_k1z_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14pd_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14pd_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14pd_zmm_k1z_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vrsqrt14pd_xmm_k1z_xmmm128b64)], N16b8 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vrsqrt14pd_ymm_k1z_ymmm256b64)], N32b8 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vrsqrt14pd_zmm_k1z_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14ss_xmm_k1z_xmm_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt14sd_xmm_k1z_xmm_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vrsqrt14ss_xmm_k1z_xmm_xmmm32)], N4 }, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vrsqrt14sd_xmm_k1z_xmm_xmmm64)], N8 }, }, invalid, invalid, }, // 50 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpdpbusd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpdpbusd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpdpbusd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpdpbusd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpdpbusd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpdpbusd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpdpbusds_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpdpbusds_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpdpbusds_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpdpbusds_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpdpbusds_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpdpbusds_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpdpwssd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpdpwssd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpdpwssd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpdpwssd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpdpwssd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpdpwssd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdpbf16ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vdpbf16ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vdpbf16ps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vdpbf16ps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vdpbf16ps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vdpbf16ps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vp4dpwssd_zmm_k1z_zmmp3_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHM, zmm0, code[nameof(Code.EVEX_Vp4dpwssd_zmm_k1z_zmmp3_m128)], N16 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpdpwssds_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpdpwssds_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpdpwssds_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpdpwssds_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpdpwssds_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpdpwssds_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vp4dpwssds_zmm_k1z_zmmp3_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHM, zmm0, code[nameof(Code.EVEX_Vp4dpwssds_zmm_k1z_zmmp3_m128)], N16 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpopcntb_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpopcntb_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpopcntb_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpopcntb_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpopcntb_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpopcntb_zmm_k1z_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpopcntw_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpopcntw_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpopcntw_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpopcntw_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpopcntw_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpopcntw_zmm_k1z_zmmm512)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpopcntd_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpopcntd_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpopcntd_zmm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vpopcntd_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vpopcntd_ymm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vpopcntd_zmm_k1z_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpopcntq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpopcntq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpopcntq_zmm_k1z_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vpopcntq_xmm_k1z_xmmm128b64)], N16b8 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vpopcntq_ymm_k1z_ymmm256b64)], N32b8 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vpopcntq_zmm_k1z_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1516,65 +1613,65 @@ namespace Generator.Decoder { invalid, // 58 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastd_xmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastd_ymm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastd_zmm_k1z_xmmm32)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastd_xmm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastd_ymm_k1z_xmmm32)], N4 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastd_zmm_k1z_xmmm32)], N4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti32x2_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti32x2_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti32x2_zmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vbroadcasti32x2_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vbroadcasti32x2_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vbroadcasti32x2_zmm_k1z_xmmm64)], N8 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastq_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastq_ymm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastq_zmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastq_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastq_ymm_k1z_xmmm64)], N8 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastq_zmm_k1z_xmmm64)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti32x4_ymm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti32x4_zmm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkM, ymm0, code[nameof(Code.EVEX_Vbroadcasti32x4_ymm_k1z_m128)], N16 }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcasti32x4_zmm_k1z_m128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti64x2_ymm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti64x2_zmm_k1z_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkM, ymm0, code[nameof(Code.EVEX_Vbroadcasti64x2_ymm_k1z_m128)], N16 }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcasti64x2_zmm_k1z_m128)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti32x8_zmm_k1z_m256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcasti32x8_zmm_k1z_m256)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vbroadcasti64x4_zmm_k1z_m256)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkM, zmm0, code[nameof(Code.EVEX_Vbroadcasti64x4_zmm_k1z_m256)], N32 }, }, }, invalid, @@ -1588,86 +1685,86 @@ namespace Generator.Decoder { // 60 invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpexpandb_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpexpandb_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpexpandb_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N1)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpexpandb_xmm_k1z_xmmm128)], N1 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpexpandb_ymm_k1z_ymmm256)], N1 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpexpandb_zmm_k1z_zmmm512)], N1 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpexpandw_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpexpandw_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpexpandw_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpexpandw_xmm_k1z_xmmm128)], N2 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpexpandw_ymm_k1z_ymmm256)], N2 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpexpandw_zmm_k1z_zmmm512)], N2 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcompressb_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcompressb_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcompressb_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N1)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vpcompressb_xmmm128_k1z_xmm)], N1 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vpcompressb_ymmm256_k1z_ymm)], N1 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vpcompressb_zmmm512_k1z_zmm)], N1 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcompressw_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcompressw_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcompressw_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vpcompressw_xmmm128_k1z_xmm)], N2 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vpcompressw_ymmm256_k1z_ymm)], N2 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vpcompressw_zmmm512_k1z_zmm)], N2 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpblendmd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpblendmd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpblendmd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpblendmd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpblendmd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpblendmd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpblendmq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpblendmq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpblendmq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpblendmq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpblendmq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpblendmq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vblendmps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vblendmps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vblendmps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vblendmps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vblendmps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vblendmps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vblendmpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vblendmpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vblendmpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vblendmpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vblendmpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vblendmpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpblendmb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpblendmb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpblendmb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpblendmb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpblendmb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpblendmb_zmm_k1z_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpblendmw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpblendmw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpblendmw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpblendmw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpblendmw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpblendmw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, invalid, @@ -1676,20 +1773,20 @@ namespace Generator.Decoder { invalid, // 68 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KP1HW)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vp2intersectd_kp1_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KP1HW)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vp2intersectd_kp1_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KP1HW)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vp2intersectd_kp1_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KP1HW, xmm0, code[nameof(Code.EVEX_Vp2intersectd_kp1_xmm_xmmm128b32)], N16b4 }, + new object[] { KP1HW, ymm0, code[nameof(Code.EVEX_Vp2intersectd_kp1_ymm_ymmm256b32)], N32b4 }, + new object[] { KP1HW, zmm0, code[nameof(Code.EVEX_Vp2intersectd_kp1_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KP1HW)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vp2intersectq_kp1_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KP1HW)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vp2intersectq_kp1_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KP1HW)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vp2intersectq_kp1_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KP1HW, xmm0, code[nameof(Code.EVEX_Vp2intersectq_kp1_xmm_xmmm128b64)], N16b8 }, + new object[] { KP1HW, ymm0, code[nameof(Code.EVEX_Vp2intersectq_kp1_ymm_ymmm256b64)], N32b8 }, + new object[] { KP1HW, zmm0, code[nameof(Code.EVEX_Vp2intersectq_kp1_zmm_zmmm512b64)], N64b8 }, }, }, }, @@ -1702,127 +1799,127 @@ namespace Generator.Decoder { invalid, // 70 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshldvw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshldvw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshldvw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpshldvw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpshldvw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpshldvw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshldvd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshldvd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshldvd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpshldvd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpshldvd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpshldvd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshldvq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshldvq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshldvq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpshldvq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpshldvq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpshldvq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpshrdvw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpshrdvw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpshrdvw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4b)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtneps2bf16_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4b)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtneps2bf16_xmm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4b)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtneps2bf16_ymm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4b, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtneps2bf16_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_4b, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtneps2bf16_xmm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_4b, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtneps2bf16_ymm_k1z_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtne2ps2bf16_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtne2ps2bf16_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtne2ps2bf16_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vcvtne2ps2bf16_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vcvtne2ps2bf16_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vcvtne2ps2bf16_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpshrdvd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpshrdvd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpshrdvd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshrdvq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpshrdvq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpshrdvq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpshrdvq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermi2b_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermi2b_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermi2b_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpermi2b_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpermi2b_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpermi2b_zmm_k1z_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermi2w_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermi2w_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermi2w_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpermi2w_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpermi2w_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpermi2w_zmm_k1z_zmm_zmmm512)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermi2d_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermi2d_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermi2d_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermi2d_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermi2d_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermi2d_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermi2q_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermi2q_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermi2q_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermi2q_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermi2q_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermi2q_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermi2ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermi2ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermi2ps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermi2ps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermi2ps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermi2ps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermi2pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermi2pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermi2pd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermi2pd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermi2pd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermi2pd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1830,114 +1927,114 @@ namespace Generator.Decoder { }, // 78 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastb_xmm_k1z_xmmm8)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastb_ymm_k1z_xmmm8)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastb_zmm_k1z_xmmm8)], tupleTypeEnum[nameof(TupleType.N1)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastb_xmm_k1z_xmmm8)], N1 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastb_ymm_k1z_xmmm8)], N1 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastb_zmm_k1z_xmmm8)], N1 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastw_xmm_k1z_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastw_ymm_k1z_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_4)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastw_zmm_k1z_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_4, xmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastw_xmm_k1z_xmmm16)], N2 }, + new object[] { VkW_4, ymm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastw_ymm_k1z_xmmm16)], N2 }, + new object[] { VkW_4, zmm0, xmm0, code[nameof(Code.EVEX_Vpbroadcastw_zmm_k1z_xmmm16)], N2 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastb_xmm_k1z_r32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastb_ymm_k1z_r32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastb_zmm_k1z_r32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkEv_REXW_2, xmm0, code[nameof(Code.EVEX_Vpbroadcastb_xmm_k1z_r32)] }, + new object[] { VkEv_REXW_2, ymm0, code[nameof(Code.EVEX_Vpbroadcastb_ymm_k1z_r32)] }, + new object[] { VkEv_REXW_2, zmm0, code[nameof(Code.EVEX_Vpbroadcastb_zmm_k1z_r32)] }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastw_xmm_k1z_r32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastw_ymm_k1z_r32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_2)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastw_zmm_k1z_r32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkEv_REXW_2, xmm0, code[nameof(Code.EVEX_Vpbroadcastw_xmm_k1z_r32)] }, + new object[] { VkEv_REXW_2, ymm0, code[nameof(Code.EVEX_Vpbroadcastw_ymm_k1z_r32)] }, + new object[] { VkEv_REXW_2, zmm0, code[nameof(Code.EVEX_Vpbroadcastw_zmm_k1z_r32)] }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastd_xmm_k1z_r32)], codeEnum[nameof(Code.EVEX_Vpbroadcastq_xmm_k1z_r64)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastd_ymm_k1z_r32)], codeEnum[nameof(Code.EVEX_Vpbroadcastq_ymm_k1z_r64)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkEv_REXW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpbroadcastd_zmm_k1z_r32)], codeEnum[nameof(Code.EVEX_Vpbroadcastq_zmm_k1z_r64)] }, + new object[] { VectorLength, + new object[] { VkEv_REXW_3, xmm0, code[nameof(Code.EVEX_Vpbroadcastd_xmm_k1z_r32)], code[nameof(Code.EVEX_Vpbroadcastq_xmm_k1z_r64)] }, + new object[] { VkEv_REXW_3, ymm0, code[nameof(Code.EVEX_Vpbroadcastd_ymm_k1z_r32)], code[nameof(Code.EVEX_Vpbroadcastq_ymm_k1z_r64)] }, + new object[] { VkEv_REXW_3, zmm0, code[nameof(Code.EVEX_Vpbroadcastd_zmm_k1z_r32)], code[nameof(Code.EVEX_Vpbroadcastq_zmm_k1z_r64)] }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermt2b_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermt2b_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermt2b_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpermt2b_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpermt2b_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpermt2b_zmm_k1z_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermt2w_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermt2w_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermt2w_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpermt2w_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpermt2w_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpermt2w_zmm_k1z_zmm_zmmm512)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermt2d_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermt2d_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermt2d_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermt2d_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermt2d_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermt2d_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermt2q_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermt2q_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermt2q_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermt2q_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermt2q_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermt2q_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermt2ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermt2ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermt2ps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermt2ps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermt2ps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermt2ps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermt2pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermt2pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermt2pd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpermt2pd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpermt2pd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpermt2pd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1948,14 +2045,14 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmultishiftqb_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmultishiftqb_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmultishiftqb_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmultishiftqb_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmultishiftqb_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmultishiftqb_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -1967,100 +2064,100 @@ namespace Generator.Decoder { invalid, // 88 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vexpandps_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vexpandps_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vexpandps_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vexpandps_xmm_k1z_xmmm128)], N4 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vexpandps_ymm_k1z_ymmm256)], N4 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vexpandps_zmm_k1z_zmmm512)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vexpandpd_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vexpandpd_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vexpandpd_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vexpandpd_xmm_k1z_xmmm128)], N8 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vexpandpd_ymm_k1z_ymmm256)], N8 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vexpandpd_zmm_k1z_zmmm512)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpexpandd_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpexpandd_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpexpandd_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpexpandd_xmm_k1z_xmmm128)], N4 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpexpandd_ymm_k1z_ymmm256)], N4 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpexpandd_zmm_k1z_zmmm512)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpexpandq_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpexpandq_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpexpandq_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vpexpandq_xmm_k1z_xmmm128)], N8 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vpexpandq_ymm_k1z_ymmm256)], N8 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vpexpandq_zmm_k1z_zmmm512)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcompressps_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcompressps_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcompressps_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vcompressps_xmmm128_k1z_xmm)], N4 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vcompressps_ymmm256_k1z_ymm)], N4 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vcompressps_zmmm512_k1z_zmm)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcompresspd_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcompresspd_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcompresspd_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vcompresspd_xmmm128_k1z_xmm)], N8 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vcompresspd_ymmm256_k1z_ymm)], N8 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vcompresspd_zmmm512_k1z_zmm)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcompressd_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcompressd_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcompressd_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vpcompressd_xmmm128_k1z_xmm)], N4 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vpcompressd_ymmm256_k1z_ymm)], N4 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vpcompressd_zmmm512_k1z_zmm)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcompressq_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcompressq_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcompressq_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vpcompressq_xmmm128_k1z_xmm)], N8 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vpcompressq_ymmm256_k1z_ymm)], N8 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vpcompressq_zmmm512_k1z_zmm)], N8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpermb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpermb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpermb_zmm_k1z_zmm_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpermw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpermw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpermw_zmm_k1z_zmm_zmmm512)], N64 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshufbitqmb_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshufbitqmb_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshufbitqmb_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vpshufbitqmb_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vpshufbitqmb_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vpshufbitqmb_kr_k1_zmm_zmmm512)], N64 }, }, invalid, }, @@ -2069,69 +2166,69 @@ namespace Generator.Decoder { }, // 90 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpgatherdd_xmm_k1_vm32x)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpgatherdd_ymm_k1_vm32y)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpgatherdd_zmm_k1_vm32z)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vpgatherdd_xmm_k1_vm32x)], N4 }, + new object[] { Vk_VSIB, ymm0, ymm0, code[nameof(Code.EVEX_Vpgatherdd_ymm_k1_vm32y)], N4 }, + new object[] { Vk_VSIB, zmm0, zmm0, code[nameof(Code.EVEX_Vpgatherdd_zmm_k1_vm32z)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpgatherdq_xmm_k1_vm32x)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpgatherdq_ymm_k1_vm32x)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpgatherdq_zmm_k1_vm32y)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vpgatherdq_xmm_k1_vm32x)], N8 }, + new object[] { Vk_VSIB, ymm0, xmm0, code[nameof(Code.EVEX_Vpgatherdq_ymm_k1_vm32x)], N8 }, + new object[] { Vk_VSIB, zmm0, ymm0, code[nameof(Code.EVEX_Vpgatherdq_zmm_k1_vm32y)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpgatherqd_xmm_k1_vm64x)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpgatherqd_xmm_k1_vm64y)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpgatherqd_ymm_k1_vm64z)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vpgatherqd_xmm_k1_vm64x)], N4 }, + new object[] { Vk_VSIB, xmm0, ymm0, code[nameof(Code.EVEX_Vpgatherqd_xmm_k1_vm64y)], N4 }, + new object[] { Vk_VSIB, ymm0, zmm0, code[nameof(Code.EVEX_Vpgatherqd_ymm_k1_vm64z)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpgatherqq_xmm_k1_vm64x)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpgatherqq_ymm_k1_vm64y)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpgatherqq_zmm_k1_vm64z)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vpgatherqq_xmm_k1_vm64x)], N8 }, + new object[] { Vk_VSIB, ymm0, ymm0, code[nameof(Code.EVEX_Vpgatherqq_ymm_k1_vm64y)], N8 }, + new object[] { Vk_VSIB, zmm0, zmm0, code[nameof(Code.EVEX_Vpgatherqq_zmm_k1_vm64z)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgatherdps_xmm_k1_vm32x)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgatherdps_ymm_k1_vm32y)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherdps_zmm_k1_vm32z)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vgatherdps_xmm_k1_vm32x)], N4 }, + new object[] { Vk_VSIB, ymm0, ymm0, code[nameof(Code.EVEX_Vgatherdps_ymm_k1_vm32y)], N4 }, + new object[] { Vk_VSIB, zmm0, zmm0, code[nameof(Code.EVEX_Vgatherdps_zmm_k1_vm32z)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgatherdpd_xmm_k1_vm32x)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgatherdpd_ymm_k1_vm32x)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgatherdpd_zmm_k1_vm32y)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vgatherdpd_xmm_k1_vm32x)], N8 }, + new object[] { Vk_VSIB, ymm0, xmm0, code[nameof(Code.EVEX_Vgatherdpd_ymm_k1_vm32x)], N8 }, + new object[] { Vk_VSIB, zmm0, ymm0, code[nameof(Code.EVEX_Vgatherdpd_zmm_k1_vm32y)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgatherqps_xmm_k1_vm64x)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgatherqps_xmm_k1_vm64y)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherqps_ymm_k1_vm64z)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vgatherqps_xmm_k1_vm64x)], N4 }, + new object[] { Vk_VSIB, xmm0, ymm0, code[nameof(Code.EVEX_Vgatherqps_xmm_k1_vm64y)], N4 }, + new object[] { Vk_VSIB, ymm0, zmm0, code[nameof(Code.EVEX_Vgatherqps_ymm_k1_vm64z)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgatherqpd_xmm_k1_vm64x)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgatherqpd_ymm_k1_vm64y)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Vk_VSIB)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgatherqpd_zmm_k1_vm64z)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { Vk_VSIB, xmm0, xmm0, code[nameof(Code.EVEX_Vgatherqpd_xmm_k1_vm64x)], N8 }, + new object[] { Vk_VSIB, ymm0, ymm0, code[nameof(Code.EVEX_Vgatherqpd_ymm_k1_vm64y)], N8 }, + new object[] { Vk_VSIB, zmm0, zmm0, code[nameof(Code.EVEX_Vgatherqpd_zmm_k1_vm64z)], N8 }, }, }, invalid, @@ -2139,35 +2236,35 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub132ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub132ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub132ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub132pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub132pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub132pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd132ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd132ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd132ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd132pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd132pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd132pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, @@ -2175,185 +2272,185 @@ namespace Generator.Decoder { }, // 98 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd132ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd132ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd132ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd132pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd132pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd132pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd132ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd132sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub132ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub132ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub132ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub132pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub132pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub132pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_V4fmaddps_zmm_k1z_zmmp3_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHM, zmm0, code[nameof(Code.EVEX_V4fmaddps_zmm_k1z_zmmp3_m128)], N16 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub132ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub132sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHM)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_V4fmaddss_xmm_k1z_xmmp3_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VkHM, xmm0, code[nameof(Code.EVEX_V4fmaddss_xmm_k1z_xmmp3_m128)], N16 }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd132ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd132ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd132ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd132pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd132pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd132pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd132ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd132sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub132ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub132ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub132ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub132pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub132pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub132pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub132ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub132sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, // A0 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpscatterdd_vm32x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpscatterdd_vm32y_k1_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpscatterdd_vm32z_k1_zmm)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vpscatterdd_vm32x_k1_xmm)], N4 }, + new object[] { VSIB_k1_VX, ymm0, ymm0, code[nameof(Code.EVEX_Vpscatterdd_vm32y_k1_ymm)], N4 }, + new object[] { VSIB_k1_VX, zmm0, zmm0, code[nameof(Code.EVEX_Vpscatterdd_vm32z_k1_zmm)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpscatterdq_vm32x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpscatterdq_vm32x_k1_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpscatterdq_vm32y_k1_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vpscatterdq_vm32x_k1_xmm)], N8 }, + new object[] { VSIB_k1_VX, xmm0, ymm0, code[nameof(Code.EVEX_Vpscatterdq_vm32x_k1_ymm)], N8 }, + new object[] { VSIB_k1_VX, ymm0, zmm0, code[nameof(Code.EVEX_Vpscatterdq_vm32y_k1_zmm)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpscatterqd_vm64x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpscatterqd_vm64y_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpscatterqd_vm64z_k1_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vpscatterqd_vm64x_k1_xmm)], N4 }, + new object[] { VSIB_k1_VX, ymm0, xmm0, code[nameof(Code.EVEX_Vpscatterqd_vm64y_k1_xmm)], N4 }, + new object[] { VSIB_k1_VX, zmm0, ymm0, code[nameof(Code.EVEX_Vpscatterqd_vm64z_k1_ymm)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpscatterqq_vm64x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpscatterqq_vm64y_k1_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpscatterqq_vm64z_k1_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vpscatterqq_vm64x_k1_xmm)], N8 }, + new object[] { VSIB_k1_VX, ymm0, ymm0, code[nameof(Code.EVEX_Vpscatterqq_vm64y_k1_ymm)], N8 }, + new object[] { VSIB_k1_VX, zmm0, zmm0, code[nameof(Code.EVEX_Vpscatterqq_vm64z_k1_zmm)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscatterdps_vm32x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscatterdps_vm32y_k1_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterdps_vm32z_k1_zmm)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vscatterdps_vm32x_k1_xmm)], N4 }, + new object[] { VSIB_k1_VX, ymm0, ymm0, code[nameof(Code.EVEX_Vscatterdps_vm32y_k1_ymm)], N4 }, + new object[] { VSIB_k1_VX, zmm0, zmm0, code[nameof(Code.EVEX_Vscatterdps_vm32z_k1_zmm)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscatterdpd_vm32x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscatterdpd_vm32x_k1_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterdpd_vm32y_k1_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vscatterdpd_vm32x_k1_xmm)], N8 }, + new object[] { VSIB_k1_VX, xmm0, ymm0, code[nameof(Code.EVEX_Vscatterdpd_vm32x_k1_ymm)], N8 }, + new object[] { VSIB_k1_VX, ymm0, zmm0, code[nameof(Code.EVEX_Vscatterdpd_vm32y_k1_zmm)], N8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscatterqps_vm64x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscatterqps_vm64y_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscatterqps_vm64z_k1_ymm)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vscatterqps_vm64x_k1_xmm)], N4 }, + new object[] { VSIB_k1_VX, ymm0, xmm0, code[nameof(Code.EVEX_Vscatterqps_vm64y_k1_xmm)], N4 }, + new object[] { VSIB_k1_VX, zmm0, ymm0, code[nameof(Code.EVEX_Vscatterqps_vm64z_k1_ymm)], N4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscatterqpd_vm64x_k1_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscatterqpd_vm64y_k1_ymm)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VSIB_k1_VX)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscatterqpd_vm64z_k1_zmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VSIB_k1_VX, xmm0, xmm0, code[nameof(Code.EVEX_Vscatterqpd_vm64x_k1_xmm)], N8 }, + new object[] { VSIB_k1_VX, ymm0, ymm0, code[nameof(Code.EVEX_Vscatterqpd_vm64y_k1_ymm)], N8 }, + new object[] { VSIB_k1_VX, zmm0, zmm0, code[nameof(Code.EVEX_Vscatterqpd_vm64z_k1_zmm)], N8 }, }, }, invalid, @@ -2361,35 +2458,35 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub213ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub213ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub213ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub213pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub213pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub213pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd213ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd213ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd213ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd213pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd213pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd213pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, @@ -2397,116 +2494,116 @@ namespace Generator.Decoder { }, // A8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd213ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd213ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd213ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd213pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd213pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd213pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd213ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd213sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub213ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub213ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub213ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub213pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub213pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub213pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHM)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_V4fnmaddps_zmm_k1z_zmmp3_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHM, zmm0, code[nameof(Code.EVEX_V4fnmaddps_zmm_k1z_zmmp3_m128)], N16 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub213ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub213sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHM)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_V4fnmaddss_xmm_k1z_xmmp3_m128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VkHM, xmm0, code[nameof(Code.EVEX_V4fnmaddss_xmm_k1z_xmmp3_m128)], N16 }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd213ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd213ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd213ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd213pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd213pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd213pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd213ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd213sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub213ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub213ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub213ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub213pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub213pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub213pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub213ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub213sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, @@ -2517,61 +2614,61 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmadd52luq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmadd52luq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmadd52luq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmadd52luq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmadd52luq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmadd52luq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmadd52huq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmadd52huq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmadd52huq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmadd52huq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmadd52huq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmadd52huq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub231ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub231ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub231ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub231pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub231pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub231pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd231ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd231ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd231ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd231pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd231pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd231pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, @@ -2579,106 +2676,106 @@ namespace Generator.Decoder { }, // B8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd231ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd231ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd231ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd231pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd231pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd231pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd231ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd231sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub231ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub231ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub231ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub231pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub231pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub231pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub231ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub231sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd231ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd231ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd231ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd231pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd231pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd231pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd231ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd231sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub231ps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub231ps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub231ps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231pd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231pd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231pd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub231pd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub231pd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub231pd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231sd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub231ss_xmm_k1z_xmm_xmmm32_er)], N4, false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub231sd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, invalid, invalid, @@ -2689,106 +2786,106 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpconflictd_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpconflictd_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpconflictd_zmm_k1z_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vpconflictd_xmm_k1z_xmmm128b32)], N16b4 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vpconflictd_ymm_k1z_ymmm256b32)], N32b4 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vpconflictd_zmm_k1z_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpconflictq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpconflictq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpconflictq_zmm_k1z_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vpconflictq_xmm_k1z_xmmm128b64)], N16b8 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vpconflictq_ymm_k1z_ymmm256b64)], N32b8 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vpconflictq_zmm_k1z_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Group)], "handlers_Grp_0F38C6" }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Group)], "handlers_Grp_0F38C7" }, + new object[] { Group, "handlers_Grp_0F38C6" }, + new object[] { Group, "handlers_Grp_0F38C7" }, // C8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], + new object[] { W, + new object[] { VectorLength_er, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vexp2ps_zmm_k1z_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vexp2ps_zmm_k1z_zmmm512b32_sae)], N64b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], + new object[] { VectorLength_er, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vexp2pd_zmm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vexp2pd_zmm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], + new object[] { W, + new object[] { VectorLength_er, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrcp28ps_zmm_k1z_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vrcp28ps_zmm_k1z_zmmm512b32_sae)], N64b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], + new object[] { VectorLength_er, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrcp28pd_zmm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vrcp28pd_zmm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcp28ss_xmm_k1z_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcp28sd_xmm_k1z_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vrcp28ss_xmm_k1z_xmm_xmmm32_sae)], N4, true }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vrcp28sd_xmm_k1z_xmm_xmmm64_sae)], N8, true }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], + new object[] { W, + new object[] { VectorLength_er, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt28ps_zmm_k1z_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vrsqrt28ps_zmm_k1z_zmmm512b32_sae)], N64b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], + new object[] { VectorLength_er, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt28pd_zmm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vrsqrt28pd_zmm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt28ss_xmm_k1z_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrt28sd_xmm_k1z_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vrsqrt28ss_xmm_k1z_xmm_xmmm32_sae)], N4, true }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vrsqrt28sd_xmm_k1z_xmm_xmmm64_sae)], N8, true }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8mulb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8mulb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8mulb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vgf2p8mulb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vgf2p8mulb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vgf2p8mulb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, }, @@ -2811,42 +2908,42 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaesenc_xmm_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaesenc_ymm_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaesenc_zmm_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.EVEX_Vaesenc_xmm_xmm_xmmm128)], N16 }, + new object[] { VHW_3, ymm0, code[nameof(Code.EVEX_Vaesenc_ymm_ymm_ymmm256)], N32 }, + new object[] { VHW_3, zmm0, code[nameof(Code.EVEX_Vaesenc_zmm_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaesenclast_xmm_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaesenclast_ymm_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaesenclast_zmm_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.EVEX_Vaesenclast_xmm_xmm_xmmm128)], N16 }, + new object[] { VHW_3, ymm0, code[nameof(Code.EVEX_Vaesenclast_ymm_ymm_ymmm256)], N32 }, + new object[] { VHW_3, zmm0, code[nameof(Code.EVEX_Vaesenclast_zmm_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaesdec_xmm_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaesdec_ymm_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaesdec_zmm_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.EVEX_Vaesdec_xmm_xmm_xmmm128)], N16 }, + new object[] { VHW_3, ymm0, code[nameof(Code.EVEX_Vaesdec_ymm_ymm_ymmm256)], N32 }, + new object[] { VHW_3, zmm0, code[nameof(Code.EVEX_Vaesdec_zmm_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaesdeclast_xmm_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaesdeclast_ymm_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaesdeclast_zmm_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.EVEX_Vaesdeclast_xmm_xmm_xmmm128)], N16 }, + new object[] { VHW_3, ymm0, code[nameof(Code.EVEX_Vaesdeclast_ymm_ymm_ymmm256)], N32 }, + new object[] { VHW_3, zmm0, code[nameof(Code.EVEX_Vaesdeclast_zmm_zmm_zmmm512)], N64 }, }, invalid, invalid, @@ -2896,71 +2993,71 @@ namespace Generator.Decoder { (Handlers_0F3A, new object[0x100] { // 00 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermq_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermq_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpermq_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { VkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpermq_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermpd_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermpd_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpermpd_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { VkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpermpd_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Valignd_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Valignd_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Valignd_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Valignd_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Valignd_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Valignd_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Valignq_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Valignq_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Valignq_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Valignq_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Valignq_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Valignq_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermilps_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermilps_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermilps_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpermilps_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { VkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpermilps_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { VkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpermilps_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpermilpd_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpermilpd_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpermilpd_zmm_k1z_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpermilpd_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { VkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpermilpd_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { VkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpermilpd_zmm_k1z_zmmm512b64_imm8)], N64b8 }, }, }, invalid, @@ -2970,56 +3067,56 @@ namespace Generator.Decoder { invalid, // 08 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrndscaleph_xmm_k1z_xmmm128b16_imm8)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrndscaleph_ymm_k1z_ymmm256b16_imm8)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrndscaleph_zmm_k1z_zmmm512b16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vrndscaleph_xmm_k1z_xmmm128b16_imm8)], N16b2 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vrndscaleph_ymm_k1z_ymmm256b16_imm8)], N32b2 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vrndscaleph_zmm_k1z_zmmm512b16_imm8_sae)], N64b2 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrndscaleps_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrndscaleps_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrndscaleps_zmm_k1z_zmmm512b32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vrndscaleps_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vrndscaleps_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vrndscaleps_zmm_k1z_zmmm512b32_imm8_sae)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrndscalepd_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrndscalepd_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrndscalepd_zmm_k1z_zmmm512b64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vrndscalepd_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vrndscalepd_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vrndscalepd_zmm_k1z_zmmm512b64_imm8_sae)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrndscalesh_xmm_k1z_xmm_xmmm16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vrndscalesh_xmm_k1z_xmm_xmmm16_imm8_sae)], N2 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrndscaless_xmm_k1z_xmm_xmmm32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vrndscaless_xmm_k1z_xmm_xmmm32_imm8_sae)], N4 }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrndscalesd_xmm_k1z_xmm_xmmm64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vrndscalesd_xmm_k1z_xmm_xmmm64_imm8_sae)], N8 }, }, invalid, invalid, @@ -3027,12 +3124,12 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpalignr_xmm_k1z_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpalignr_ymm_k1z_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpalignr_zmm_k1z_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpalignr_xmm_k1z_xmm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpalignr_ymm_k1z_ymm_ymmm256_imm8)], N32 }, + new object[] { VkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpalignr_zmm_k1z_zmm_zmmm512_imm8)], N64 }, }, invalid, invalid, @@ -3043,40 +3140,40 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.GvM_VX_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpextrb_r32m8_xmm_imm8)], codeEnum[nameof(Code.EVEX_Vpextrb_r64m8_xmm_imm8)], tupleTypeEnum[nameof(TupleType.N1)], tupleTypeEnum[nameof(TupleType.N1)] }, + new object[] { VectorLength, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.EVEX_Vpextrb_r32m8_xmm_imm8)], code[nameof(Code.EVEX_Vpextrb_r64m8_xmm_imm8)], N1, N1 }, invalid, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.GvM_VX_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpextrw_r32m16_xmm_imm8)], codeEnum[nameof(Code.EVEX_Vpextrw_r64m16_xmm_imm8)], tupleTypeEnum[nameof(TupleType.N2)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { VectorLength, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.EVEX_Vpextrw_r32m16_xmm_imm8)], code[nameof(Code.EVEX_Vpextrw_r64m16_xmm_imm8)], N2, N2 }, invalid, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.GvM_VX_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpextrd_rm32_xmm_imm8)], codeEnum[nameof(Code.EVEX_Vpextrq_rm64_xmm_imm8)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.EVEX_Vpextrd_rm32_xmm_imm8)], code[nameof(Code.EVEX_Vpextrq_rm64_xmm_imm8)], N4, N8 }, invalid, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Ed_V_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vextractps_rm32_xmm_imm8)], codeEnum[nameof(Code.EVEX_Vextractps_r64m32_xmm_imm8)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { VectorLength, + new object[] { Ed_V_Ib, xmm0, code[nameof(Code.EVEX_Vextractps_rm32_xmm_imm8)], code[nameof(Code.EVEX_Vextractps_r64m32_xmm_imm8)], N4, N4 }, invalid, invalid, }, @@ -3085,117 +3182,117 @@ namespace Generator.Decoder { }, // 18 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinsertf32x4_ymm_k1z_ymm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinsertf32x4_zmm_k1z_zmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHWIb_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vinsertf32x4_ymm_k1z_ymm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vinsertf32x4_zmm_k1z_zmm_xmmm128_imm8)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinsertf64x2_ymm_k1z_ymm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinsertf64x2_zmm_k1z_zmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHWIb_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vinsertf64x2_ymm_k1z_ymm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vinsertf64x2_zmm_k1z_zmm_xmmm128_imm8)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vextractf32x4_xmmm128_k1z_ymm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextractf32x4_xmmm128_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { WkVIb, xmm0, ymm0, code[nameof(Code.EVEX_Vextractf32x4_xmmm128_k1z_ymm_imm8)], N16 }, + new object[] { WkVIb, xmm0, zmm0, code[nameof(Code.EVEX_Vextractf32x4_xmmm128_k1z_zmm_imm8)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vextractf64x2_xmmm128_k1z_ymm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextractf64x2_xmmm128_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { WkVIb, xmm0, ymm0, code[nameof(Code.EVEX_Vextractf64x2_xmmm128_k1z_ymm_imm8)], N16 }, + new object[] { WkVIb, xmm0, zmm0, code[nameof(Code.EVEX_Vextractf64x2_xmmm128_k1z_zmm_imm8)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vinsertf32x8_zmm_k1z_zmm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkHWIb_5, zmm0, zmm0, ymm0, code[nameof(Code.EVEX_Vinsertf32x8_zmm_k1z_zmm_ymmm256_imm8)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vinsertf64x4_zmm_k1z_zmm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkHWIb_5, zmm0, zmm0, ymm0, code[nameof(Code.EVEX_Vinsertf64x4_zmm_k1z_zmm_ymmm256_imm8)], N32 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextractf32x8_ymmm256_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { WkVIb, ymm0, zmm0, code[nameof(Code.EVEX_Vextractf32x8_ymmm256_k1z_zmm_imm8)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextractf64x4_ymmm256_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { WkVIb, ymm0, zmm0, code[nameof(Code.EVEX_Vextractf64x4_ymmm256_k1z_zmm_imm8)], N32 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb_er)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2ph_xmmm64_k1z_xmm_imm8)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb_er)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2ph_xmmm128_k1z_ymm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb_er)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2ph_ymmm256_k1z_zmm_imm8_sae)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { WkVIb_er, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtps2ph_xmmm64_k1z_xmm_imm8)], N8 }, + new object[] { WkVIb_er, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtps2ph_xmmm128_k1z_ymm_imm8)], N16 }, + new object[] { WkVIb_er, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtps2ph_ymmm256_k1z_zmm_imm8_sae)], N32 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpud_kr_k1_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpud_kr_k1_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpud_kr_k1_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpcmpud_kr_k1_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { KkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpcmpud_kr_k1_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { KkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpcmpud_kr_k1_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpuq_kr_k1_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpuq_kr_k1_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpuq_kr_k1_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpcmpuq_kr_k1_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { KkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpcmpuq_kr_k1_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { KkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpcmpuq_kr_k1_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpd_kr_k1_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpd_kr_k1_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpd_kr_k1_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpcmpd_kr_k1_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { KkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpcmpd_kr_k1_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { KkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpcmpd_kr_k1_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpq_kr_k1_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpq_kr_k1_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpq_kr_k1_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpcmpq_kr_k1_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { KkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpcmpq_kr_k1_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { KkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpcmpq_kr_k1_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, @@ -3203,21 +3300,21 @@ namespace Generator.Decoder { }, // 20 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpinsrb_xmm_xmm_r32m8_imm8)], codeEnum[nameof(Code.EVEX_Vpinsrb_xmm_xmm_r64m8_imm8)], tupleTypeEnum[nameof(TupleType.N1)], tupleTypeEnum[nameof(TupleType.N1)] }, + new object[] { VectorLength, + new object[] { V_H_Ev_Ib, xmm0, code[nameof(Code.EVEX_Vpinsrb_xmm_xmm_r32m8_imm8)], code[nameof(Code.EVEX_Vpinsrb_xmm_xmm_r64m8_imm8)], N1, N1 }, invalid, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHWIb)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinsertps_xmm_xmm_xmmm32_imm8)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIb, xmm0, code[nameof(Code.EVEX_Vinsertps_xmm_xmm_xmmm32_imm8)], N4 }, invalid, invalid, }, @@ -3226,83 +3323,83 @@ namespace Generator.Decoder { invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpinsrd_xmm_xmm_rm32_imm8)], codeEnum[nameof(Code.EVEX_Vpinsrq_xmm_xmm_rm64_imm8)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { V_H_Ev_Ib, xmm0, code[nameof(Code.EVEX_Vpinsrd_xmm_xmm_rm32_imm8)], code[nameof(Code.EVEX_Vpinsrq_xmm_xmm_rm64_imm8)], N4, N8 }, invalid, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vshuff32x4_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vshuff32x4_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vshuff32x4_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vshuff32x4_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vshuff64x2_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vshuff64x2_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vshuff64x2_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vshuff64x2_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpternlogd_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpternlogd_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpternlogd_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpternlogd_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpternlogd_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpternlogd_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpternlogq_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpternlogq_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpternlogq_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpternlogq_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpternlogq_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpternlogq_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetmantph_xmm_k1z_xmmm128b16_imm8)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgetmantph_ymm_k1z_ymmm256b16_imm8)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgetmantph_zmm_k1z_zmmm512b16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vgetmantph_xmm_k1z_xmmm128b16_imm8)], N16b2 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vgetmantph_ymm_k1z_ymmm256b16_imm8)], N32b2 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vgetmantph_zmm_k1z_zmmm512b16_imm8_sae)], N64b2 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetmantps_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgetmantps_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgetmantps_zmm_k1z_zmmm512b32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vgetmantps_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vgetmantps_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vgetmantps_zmm_k1z_zmmm512b32_imm8_sae)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetmantpd_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgetmantpd_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgetmantpd_zmm_k1z_zmmm512b64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vgetmantpd_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vgetmantpd_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vgetmantpd_zmm_k1z_zmmm512b64_imm8_sae)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetmantsh_xmm_k1z_xmm_xmmm16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vgetmantsh_xmm_k1z_xmm_xmmm16_imm8_sae)], N2 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetmantss_xmm_k1z_xmm_xmmm32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetmantsd_xmm_k1z_xmm_xmmm64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vgetmantss_xmm_k1z_xmm_xmmm32_imm8_sae)], N4 }, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vgetmantsd_xmm_k1z_xmm_xmmm64_imm8_sae)], N8 }, }, invalid, invalid, @@ -3329,69 +3426,69 @@ namespace Generator.Decoder { invalid, // 38 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinserti32x4_ymm_k1z_ymm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinserti32x4_zmm_k1z_zmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHWIb_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vinserti32x4_ymm_k1z_ymm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vinserti32x4_zmm_k1z_zmm_xmmm128_imm8)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinserti64x2_ymm_k1z_ymm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vinserti64x2_zmm_k1z_zmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VkHWIb_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vinserti64x2_ymm_k1z_ymm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vinserti64x2_zmm_k1z_zmm_xmmm128_imm8)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vextracti32x4_xmmm128_k1z_ymm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextracti32x4_xmmm128_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { WkVIb, xmm0, ymm0, code[nameof(Code.EVEX_Vextracti32x4_xmmm128_k1z_ymm_imm8)], N16 }, + new object[] { WkVIb, xmm0, zmm0, code[nameof(Code.EVEX_Vextracti32x4_xmmm128_k1z_zmm_imm8)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vextracti64x2_xmmm128_k1z_ymm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextracti64x2_xmmm128_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { WkVIb, xmm0, ymm0, code[nameof(Code.EVEX_Vextracti64x2_xmmm128_k1z_ymm_imm8)], N16 }, + new object[] { WkVIb, xmm0, zmm0, code[nameof(Code.EVEX_Vextracti64x2_xmmm128_k1z_zmm_imm8)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vinserti32x8_zmm_k1z_zmm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkHWIb_5, zmm0, zmm0, ymm0, code[nameof(Code.EVEX_Vinserti32x8_zmm_k1z_zmm_ymmm256_imm8)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vinserti64x4_zmm_k1z_zmm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { VkHWIb_5, zmm0, zmm0, ymm0, code[nameof(Code.EVEX_Vinserti64x4_zmm_k1z_zmm_ymmm256_imm8)], N32 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextracti32x8_ymmm256_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { WkVIb, ymm0, zmm0, code[nameof(Code.EVEX_Vextracti32x8_ymmm256_k1z_zmm_imm8)], N32 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkVIb)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vextracti64x4_ymmm256_k1z_zmm_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, + new object[] { WkVIb, ymm0, zmm0, code[nameof(Code.EVEX_Vextracti64x4_ymmm256_k1z_zmm_imm8)], N32 }, }, }, invalid, @@ -3399,35 +3496,35 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpub_kr_k1_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpub_kr_k1_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpub_kr_k1_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpcmpub_kr_k1_xmm_xmmm128_imm8)], N16 }, + new object[] { KkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpcmpub_kr_k1_ymm_ymmm256_imm8)], N32 }, + new object[] { KkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpcmpub_kr_k1_zmm_zmmm512_imm8)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpuw_kr_k1_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpuw_kr_k1_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpuw_kr_k1_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpcmpuw_kr_k1_xmm_xmmm128_imm8)], N16 }, + new object[] { KkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpcmpuw_kr_k1_ymm_ymmm256_imm8)], N32 }, + new object[] { KkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpcmpuw_kr_k1_zmm_zmmm512_imm8)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpb_kr_k1_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpb_kr_k1_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpb_kr_k1_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpcmpb_kr_k1_xmm_xmmm128_imm8)], N16 }, + new object[] { KkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpcmpb_kr_k1_ymm_ymmm256_imm8)], N32 }, + new object[] { KkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpcmpb_kr_k1_zmm_zmmm512_imm8)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpw_kr_k1_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpw_kr_k1_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpw_kr_k1_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpcmpw_kr_k1_xmm_xmmm128_imm8)], N16 }, + new object[] { KkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpcmpw_kr_k1_ymm_ymmm256_imm8)], N32 }, + new object[] { KkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpcmpw_kr_k1_zmm_zmmm512_imm8)], N64 }, }, }, invalid, @@ -3437,42 +3534,42 @@ namespace Generator.Decoder { // 40 invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdbpsadbw_xmm_k1z_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vdbpsadbw_ymm_k1z_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vdbpsadbw_zmm_k1z_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHWIb_3, xmm0, code[nameof(Code.EVEX_Vdbpsadbw_xmm_k1z_xmm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_3, ymm0, code[nameof(Code.EVEX_Vdbpsadbw_ymm_k1z_ymm_ymmm256_imm8)], N32 }, + new object[] { VkHWIb_3, zmm0, code[nameof(Code.EVEX_Vdbpsadbw_zmm_k1z_zmm_zmmm512_imm8)], N64 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vshufi32x4_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vshufi32x4_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vshufi32x4_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vshufi32x4_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vshufi64x2_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vshufi64x2_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vshufi64x2_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vshufi64x2_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHWIb)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpclmulqdq_xmm_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHWIb)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpclmulqdq_ymm_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHWIb)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpclmulqdq_zmm_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VHWIb, xmm0, code[nameof(Code.EVEX_Vpclmulqdq_xmm_xmm_xmmm128_imm8)], N16 }, + new object[] { VHWIb, ymm0, code[nameof(Code.EVEX_Vpclmulqdq_ymm_ymm_ymmm256_imm8)], N32 }, + new object[] { VHWIb, zmm0, code[nameof(Code.EVEX_Vpclmulqdq_zmm_zmm_zmmm512_imm8)], N64 }, }, invalid, invalid, @@ -3492,92 +3589,92 @@ namespace Generator.Decoder { invalid, // 50 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrangeps_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrangeps_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrangeps_zmm_k1z_zmm_zmmm512b32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHWIb_er_4b, xmm0, code[nameof(Code.EVEX_Vrangeps_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_er_4b, ymm0, code[nameof(Code.EVEX_Vrangeps_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_er_4b, zmm0, code[nameof(Code.EVEX_Vrangeps_zmm_k1z_zmm_zmmm512b32_imm8_sae)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrangepd_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrangepd_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrangepd_zmm_k1z_zmm_zmmm512b64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength_er, + new object[] { VkHWIb_er_4b, xmm0, code[nameof(Code.EVEX_Vrangepd_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_er_4b, ymm0, code[nameof(Code.EVEX_Vrangepd_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_er_4b, zmm0, code[nameof(Code.EVEX_Vrangepd_zmm_k1z_zmm_zmmm512b64_imm8_sae)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrangess_xmm_k1z_xmm_xmmm32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrangesd_xmm_k1z_xmm_xmmm64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vrangess_xmm_k1z_xmm_xmmm32_imm8_sae)], N4 }, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vrangesd_xmm_k1z_xmm_xmmm64_imm8_sae)], N8 }, }, invalid, invalid, }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmps_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmps_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmps_zmm_k1z_zmm_zmmm512b32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHWIb_er_4b, xmm0, code[nameof(Code.EVEX_Vfixupimmps_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_er_4b, ymm0, code[nameof(Code.EVEX_Vfixupimmps_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_er_4b, zmm0, code[nameof(Code.EVEX_Vfixupimmps_zmm_k1z_zmm_zmmm512b32_imm8_sae)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmpd_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmpd_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmpd_zmm_k1z_zmm_zmmm512b64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength_er, + new object[] { VkHWIb_er_4b, xmm0, code[nameof(Code.EVEX_Vfixupimmpd_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_er_4b, ymm0, code[nameof(Code.EVEX_Vfixupimmpd_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_er_4b, zmm0, code[nameof(Code.EVEX_Vfixupimmpd_zmm_k1z_zmm_zmmm512b64_imm8_sae)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmss_xmm_k1z_xmm_xmmm32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfixupimmsd_xmm_k1z_xmm_xmmm64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vfixupimmss_xmm_k1z_xmm_xmmm32_imm8_sae)], N4 }, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vfixupimmsd_xmm_k1z_xmm_xmmm64_imm8_sae)], N8 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vreduceph_xmm_k1z_xmmm128b16_imm8)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vreduceph_ymm_k1z_ymmm256b16_imm8)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vreduceph_zmm_k1z_zmmm512b16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vreduceph_xmm_k1z_xmmm128b16_imm8)], N16b2 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vreduceph_ymm_k1z_ymmm256b16_imm8)], N32b2 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vreduceph_zmm_k1z_zmmm512b16_imm8_sae)], N64b2 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vreduceps_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vreduceps_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vreduceps_zmm_k1z_zmmm512b32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vreduceps_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vreduceps_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vreduceps_zmm_k1z_zmmm512b32_imm8_sae)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vreducepd_xmm_k1z_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vreducepd_ymm_k1z_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_er)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vreducepd_zmm_k1z_zmmm512b64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength_er, + new object[] { VkWIb_er, xmm0, code[nameof(Code.EVEX_Vreducepd_xmm_k1z_xmmm128b64_imm8)], N16b8 }, + new object[] { VkWIb_er, ymm0, code[nameof(Code.EVEX_Vreducepd_ymm_k1z_ymmm256b64_imm8)], N32b8 }, + new object[] { VkWIb_er, zmm0, code[nameof(Code.EVEX_Vreducepd_zmm_k1z_zmmm512b64_imm8_sae)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vreducesh_xmm_k1z_xmm_xmmm16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vreducesh_xmm_k1z_xmm_xmmm16_imm8_sae)], N2 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vreducess_xmm_k1z_xmm_xmmm32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vreducesd_xmm_k1z_xmm_xmmm64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vreducess_xmm_k1z_xmm_xmmm32_imm8_sae)], N4 }, + new object[] { VkHWIb_er_4, xmm0, code[nameof(Code.EVEX_Vreducesd_xmm_k1z_xmm_xmmm64_imm8_sae)], N8 }, }, invalid, invalid, @@ -3600,38 +3697,38 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfpclassph_kr_k1_xmmm128b16_imm8)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfpclassph_kr_k1_ymmm256b16_imm8)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfpclassph_kr_k1_zmmm512b16_imm8)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { KkWIb_3b, xmm0, code[nameof(Code.EVEX_Vfpclassph_kr_k1_xmmm128b16_imm8)], N16b2 }, + new object[] { KkWIb_3b, ymm0, code[nameof(Code.EVEX_Vfpclassph_kr_k1_ymmm256b16_imm8)], N32b2 }, + new object[] { KkWIb_3b, zmm0, code[nameof(Code.EVEX_Vfpclassph_kr_k1_zmmm512b16_imm8)], N64b2 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfpclassps_kr_k1_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfpclassps_kr_k1_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfpclassps_kr_k1_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkWIb_3b, xmm0, code[nameof(Code.EVEX_Vfpclassps_kr_k1_xmmm128b32_imm8)], N16b4 }, + new object[] { KkWIb_3b, ymm0, code[nameof(Code.EVEX_Vfpclassps_kr_k1_ymmm256b32_imm8)], N32b4 }, + new object[] { KkWIb_3b, zmm0, code[nameof(Code.EVEX_Vfpclassps_kr_k1_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfpclasspd_kr_k1_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfpclasspd_kr_k1_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfpclasspd_kr_k1_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { KkWIb_3b, xmm0, code[nameof(Code.EVEX_Vfpclasspd_kr_k1_xmmm128b64_imm8)], N16b8 }, + new object[] { KkWIb_3b, ymm0, code[nameof(Code.EVEX_Vfpclasspd_kr_k1_ymmm256b64_imm8)], N32b8 }, + new object[] { KkWIb_3b, zmm0, code[nameof(Code.EVEX_Vfpclasspd_kr_k1_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfpclasssh_kr_k1_xmmm16_imm8)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { KkWIb_3, xmm0, code[nameof(Code.EVEX_Vfpclasssh_kr_k1_xmmm16_imm8)], N2 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfpclassss_kr_k1_xmmm32_imm8)], tupleTypeEnum[nameof(TupleType.N4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfpclasssd_kr_k1_xmmm64_imm8)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { W, + new object[] { KkWIb_3, xmm0, code[nameof(Code.EVEX_Vfpclassss_kr_k1_xmmm32_imm8)], N4 }, + new object[] { KkWIb_3, xmm0, code[nameof(Code.EVEX_Vfpclasssd_kr_k1_xmmm64_imm8)], N8 }, }, invalid, invalid, @@ -3648,61 +3745,61 @@ namespace Generator.Decoder { invalid, // 70 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshldw_xmm_k1z_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshldw_ymm_k1z_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshldw_zmm_k1z_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpshldw_xmm_k1z_xmm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpshldw_ymm_k1z_ymm_ymmm256_imm8)], N32 }, + new object[] { VkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpshldw_zmm_k1z_zmm_zmmm512_imm8)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshldd_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshldd_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshldd_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpshldd_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpshldd_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpshldd_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshldq_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshldq_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshldq_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpshldq_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpshldq_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpshldq_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshrdw_xmm_k1z_xmm_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshrdw_ymm_k1z_ymm_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshrdw_zmm_k1z_zmm_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3, xmm0, code[nameof(Code.EVEX_Vpshrdw_xmm_k1z_xmm_xmmm128_imm8)], N16 }, + new object[] { VkHWIb_3, ymm0, code[nameof(Code.EVEX_Vpshrdw_ymm_k1z_ymm_ymmm256_imm8)], N32 }, + new object[] { VkHWIb_3, zmm0, code[nameof(Code.EVEX_Vpshrdw_zmm_k1z_zmm_zmmm512_imm8)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshrdd_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshrdd_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshrdd_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpshrdd_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpshrdd_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpshrdd_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshrdq_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshrdq_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshrdq_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vpshrdq_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vpshrdq_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vpshrdq_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, @@ -3806,18 +3903,18 @@ namespace Generator.Decoder { // C0 invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcmpph_kr_k1_xmm_xmmm128b16_imm8)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcmpph_kr_k1_ymm_ymmm256b16_imm8)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcmpph_kr_k1_zmm_zmmm512b16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { KkHWIb_sae_3b, xmm0, code[nameof(Code.EVEX_Vcmpph_kr_k1_xmm_xmmm128b16_imm8)], N16b2 }, + new object[] { KkHWIb_sae_3b, ymm0, code[nameof(Code.EVEX_Vcmpph_kr_k1_ymm_ymmm256b16_imm8)], N32b2 }, + new object[] { KkHWIb_sae_3b, zmm0, code[nameof(Code.EVEX_Vcmpph_kr_k1_zmm_zmmm512b16_imm8_sae)], N64b2 }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcmpsh_kr_k1_xmm_xmmm16_imm8_sae)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { W, + new object[] { KkHWIb_sae_3, xmm0, code[nameof(Code.EVEX_Vcmpsh_kr_k1_xmm_xmmm16_imm8_sae)], N2 }, invalid, }, invalid, @@ -3835,27 +3932,27 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8affineqb_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8affineqb_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8affineqb_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vgf2p8affineqb_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vgf2p8affineqb_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vgf2p8affineqb_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8affineinvqb_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8affineinvqb_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgf2p8affineinvqb_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vgf2p8affineinvqb_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vgf2p8affineinvqb_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vgf2p8affineinvqb_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, @@ -3946,25 +4043,25 @@ namespace Generator.Decoder { invalid, // 10 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsh_xmm_k1z_xmm_xmm)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsh_xmm_k1z_m16)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { W, + new object[] { RM, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vmovsh_xmm_k1z_xmm_xmm)], N1 }, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovsh_xmm_k1z_m16)], N2 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkHV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsh_xmm_k1z_xmm_xmm_MAP5_11)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsh_m16_k1_xmm)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { RM, + new object[] { WkHV, xmm0, code[nameof(Code.EVEX_Vmovsh_xmm_k1z_xmm_xmm_MAP5_11)] }, + new object[] { WkV_4b, xmm0, code[nameof(Code.EVEX_Vmovsh_m16_k1_xmm)], N2, false }, }, invalid, }, @@ -3983,16 +4080,16 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtss2sh_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtss2sh_xmm_k1z_xmm_xmmm32_er)], N4, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2phx_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2phx_xmm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2phx_ymm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtps2phx_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtps2phx_xmm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtps2phx_ymm_k1z_zmmm512b32_er)], N64b4, false }, }, invalid, }, @@ -4015,37 +4112,37 @@ namespace Generator.Decoder { // 28 invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsi2sh_xmm_xmm_rm32_er)], codeEnum[nameof(Code.EVEX_Vcvtsi2sh_xmm_xmm_rm64_er)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { V_H_Ev_er, xmm0, code[nameof(Code.EVEX_Vcvtsi2sh_xmm_xmm_rm32_er)], code[nameof(Code.EVEX_Vcvtsi2sh_xmm_xmm_rm64_er)], N4, N8 }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttsh2si_r32_xmmm16_sae)], codeEnum[nameof(Code.EVEX_Vcvttsh2si_r64_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvttsh2si_r32_xmmm16_sae)], code[nameof(Code.EVEX_Vcvttsh2si_r64_xmmm16_sae)], N2, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsh2si_r32_xmmm16_er)], codeEnum[nameof(Code.EVEX_Vcvtsh2si_r64_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvtsh2si_r32_xmmm16_er)], code[nameof(Code.EVEX_Vcvtsh2si_r64_xmmm16_er)], N2, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vucomish_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VW_er, xmm0, code[nameof(Code.EVEX_Vucomish_xmm_xmmm16_sae)], N2 }, invalid, }, invalid, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcomish_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VW_er, xmm0, code[nameof(Code.EVEX_Vcomish_xmm_xmmm16_sae)], N2 }, invalid, }, invalid, @@ -4095,18 +4192,18 @@ namespace Generator.Decoder { // 50 invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsqrtph_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vsqrtph_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vsqrtph_zmm_k1z_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vsqrtph_xmm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vsqrtph_ymm_k1z_ymmm256b16)], N32b2, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vsqrtph_zmm_k1z_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsqrtsh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vsqrtsh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, @@ -4119,154 +4216,154 @@ namespace Generator.Decoder { invalid, // 58 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaddph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaddph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaddph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vaddph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vaddph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vaddph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaddsh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vaddsh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmulph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmulph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmulph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vmulph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vmulph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vmulph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmulsh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vmulsh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2pd_xmm_k1z_xmmm32b16)], tupleTypeEnum[nameof(TupleType.N4b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2pd_ymm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2pd_zmm_k1z_xmmm128b16_sae)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2pd_xmm_k1z_xmmm32b16)], N4b2, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2pd_ymm_k1z_xmmm64b16)], N8b2, true }, + new object[] { VkW_er_5, zmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2pd_zmm_k1z_xmmm128b16_sae)], N16b2, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2ph_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2ph_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2ph_xmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtpd2ph_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtpd2ph_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, xmm0, zmm0, code[nameof(Code.EVEX_Vcvtpd2ph_xmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsh2sd_xmm_k1z_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtsh2sd_xmm_k1z_xmm_xmmm16_sae)], N2, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsd2sh_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtsd2sh_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2ph_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2ph_xmm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2ph_ymm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtdq2ph_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtdq2ph_xmm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtdq2ph_ymm_k1z_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2ph_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2ph_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2ph_xmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtqq2ph_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtqq2ph_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, xmm0, zmm0, code[nameof(Code.EVEX_Vcvtqq2ph_xmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2dq_xmm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2dq_ymm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2dq_zmm_k1z_ymmm256b16_er)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2dq_xmm_k1z_xmmm64b16)], N8b2, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2dq_ymm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtph2dq_zmm_k1z_ymmm256b16_er)], N32b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2dq_xmm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2dq_ymm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2dq_zmm_k1z_ymmm256b16_sae)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttph2dq_xmm_k1z_xmmm64b16)], N8b2, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvttph2dq_ymm_k1z_xmmm128b16)], N16b2, true }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvttph2dq_zmm_k1z_ymmm256b16_sae)], N32b2, true }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsubph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vsubph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vsubph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vsubph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vsubph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vsubph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsubsh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vsubsh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vminph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vminph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vminph_zmm_k1z_zmm_zmmm512b16_sae)], tupleTypeEnum[nameof(TupleType.N64b2)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vminph_xmm_k1z_xmm_xmmm128b16)], N16b2, true }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vminph_ymm_k1z_ymm_ymmm256b16)], N32b2, true }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vminph_zmm_k1z_zmm_zmmm512b16_sae)], N64b2, true }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vminsh_xmm_k1z_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vminsh_xmm_k1z_xmm_xmmm16_sae)], N2, true }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdivph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vdivph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vdivph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vdivph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vdivph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vdivph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdivsh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vdivsh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmaxph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmaxph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmaxph_zmm_k1z_zmm_zmmm512b16_sae)], tupleTypeEnum[nameof(TupleType.N64b2)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vmaxph_xmm_k1z_xmm_xmmm128b16)], N16b2, true }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vmaxph_ymm_k1z_ymm_ymmm256b16)], N32b2, true }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vmaxph_zmm_k1z_zmm_zmmm512b16_sae)], N64b2, true }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmaxsh_xmm_k1z_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vmaxsh_xmm_k1z_xmm_xmmm16_sae)], N2, true }, invalid, }, invalid, @@ -4289,10 +4386,10 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VX_Ev)], codeEnum[nameof(Code.EVEX_Vmovw_xmm_r32m16)], codeEnum[nameof(Code.EVEX_Vmovw_xmm_r64m16)], tupleTypeEnum[nameof(TupleType.N2)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { VectorLength, + new object[] { VX_Ev, code[nameof(Code.EVEX_Vmovw_xmm_r32m16)], code[nameof(Code.EVEX_Vmovw_xmm_r64m16)], N2, N2 }, invalid, invalid, }, @@ -4312,141 +4409,141 @@ namespace Generator.Decoder { invalid, // 78 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2udq_xmm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2udq_ymm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2udq_zmm_k1z_ymmm256b16_sae)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttph2udq_xmm_k1z_xmmm64b16)], N8b2, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvttph2udq_ymm_k1z_xmmm128b16)], N16b2, true }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvttph2udq_zmm_k1z_ymmm256b16_sae)], N32b2, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2uqq_xmm_k1z_xmmm32b16)], tupleTypeEnum[nameof(TupleType.N4b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2uqq_ymm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2uqq_zmm_k1z_xmmm128b16_sae)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttph2uqq_xmm_k1z_xmmm32b16)], N4b2, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvttph2uqq_ymm_k1z_xmmm64b16)], N8b2, true }, + new object[] { VkW_er_5, zmm0, xmm0, code[nameof(Code.EVEX_Vcvttph2uqq_zmm_k1z_xmmm128b16_sae)], N16b2, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttsh2usi_r32_xmmm16_sae)], codeEnum[nameof(Code.EVEX_Vcvttsh2usi_r64_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvttsh2usi_r32_xmmm16_sae)], code[nameof(Code.EVEX_Vcvttsh2usi_r64_xmmm16_sae)], N2, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2udq_xmm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2udq_ymm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2udq_zmm_k1z_ymmm256b16_er)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2udq_xmm_k1z_xmmm64b16)], N8b2, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2udq_ymm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtph2udq_zmm_k1z_ymmm256b16_er)], N32b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2uqq_xmm_k1z_xmmm32b16)], tupleTypeEnum[nameof(TupleType.N4b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2uqq_ymm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2uqq_zmm_k1z_xmmm128b16_er)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2uqq_xmm_k1z_xmmm32b16)], N4b2, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2uqq_ymm_k1z_xmmm64b16)], N8b2, false }, + new object[] { VkW_er_5, zmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2uqq_zmm_k1z_xmmm128b16_er)], N16b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsh2usi_r32_xmmm16_er)], codeEnum[nameof(Code.EVEX_Vcvtsh2usi_r64_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvtsh2usi_r32_xmmm16_er)], code[nameof(Code.EVEX_Vcvtsh2usi_r64_xmmm16_er)], N2, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2qq_xmm_k1z_xmmm32b16)], tupleTypeEnum[nameof(TupleType.N4b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2qq_ymm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2qq_zmm_k1z_xmmm128b16_sae)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttph2qq_xmm_k1z_xmmm32b16)], N4b2, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvttph2qq_ymm_k1z_xmmm64b16)], N8b2, true }, + new object[] { VkW_er_5, zmm0, xmm0, code[nameof(Code.EVEX_Vcvttph2qq_zmm_k1z_xmmm128b16_sae)], N16b2, true }, }, invalid, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2ph_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2ph_xmm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2ph_ymm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtudq2ph_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtudq2ph_xmm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtudq2ph_ymm_k1z_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2ph_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2ph_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2ph_xmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtuqq2ph_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtuqq2ph_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, xmm0, zmm0, code[nameof(Code.EVEX_Vcvtuqq2ph_xmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2qq_xmm_k1z_xmmm32b16)], tupleTypeEnum[nameof(TupleType.N4b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2qq_ymm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2qq_zmm_k1z_xmmm128b16_er)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2qq_xmm_k1z_xmmm32b16)], N4b2, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2qq_ymm_k1z_xmmm64b16)], N8b2, false }, + new object[] { VkW_er_5, zmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2qq_zmm_k1z_xmmm128b16_er)], N16b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtusi2sh_xmm_xmm_rm32_er)], codeEnum[nameof(Code.EVEX_Vcvtusi2sh_xmm_xmm_rm64_er)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { V_H_Ev_er, xmm0, code[nameof(Code.EVEX_Vcvtusi2sh_xmm_xmm_rm32_er)], code[nameof(Code.EVEX_Vcvtusi2sh_xmm_xmm_rm64_er)], N4, N8 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2uw_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2uw_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2uw_zmm_k1z_zmmm512b16_sae)], tupleTypeEnum[nameof(TupleType.N64b2)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvttph2uw_xmm_k1z_xmmm128b16)], N16b2, true }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvttph2uw_ymm_k1z_ymmm256b16)], N32b2, true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvttph2uw_zmm_k1z_zmmm512b16_sae)], N64b2, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2w_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2w_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttph2w_zmm_k1z_zmmm512b16_sae)], tupleTypeEnum[nameof(TupleType.N64b2)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvttph2w_xmm_k1z_xmmm128b16)], N16b2, true }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvttph2w_ymm_k1z_ymmm256b16)], N32b2, true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvttph2w_zmm_k1z_zmmm512b16_sae)], N64b2, true }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2uw_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2uw_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2uw_zmm_k1z_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtph2uw_xmm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvtph2uw_ymm_k1z_ymmm256b16)], N32b2, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvtph2uw_zmm_k1z_zmmm512b16_er)], N64b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2w_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2w_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2w_zmm_k1z_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtph2w_xmm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvtph2w_ymm_k1z_ymmm256b16)], N32b2, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvtph2w_zmm_k1z_zmmm512b16_er)], N64b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtw2ph_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtw2ph_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtw2ph_zmm_k1z_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtw2ph_xmm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvtw2ph_ymm_k1z_ymmm256b16)], N32b2, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvtw2ph_zmm_k1z_zmmm512b16_er)], N64b2, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtuw2ph_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtuw2ph_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtuw2ph_zmm_k1z_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtuw2ph_xmm_k1z_xmmm128b16)], N16b2, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvtuw2ph_ymm_k1z_ymmm256b16)], N32b2, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvtuw2ph_zmm_k1z_zmmm512b16_er)], N64b2, false }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Ev_VX)], codeEnum[nameof(Code.EVEX_Vmovw_r32m16_xmm)], codeEnum[nameof(Code.EVEX_Vmovw_r64m16_xmm)], tupleTypeEnum[nameof(TupleType.N2)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { VectorLength, + new object[] { Ev_VX, code[nameof(Code.EVEX_Vmovw_r32m16_xmm)], code[nameof(Code.EVEX_Vmovw_r64m16_xmm)], N2, N2 }, invalid, invalid, }, @@ -4642,16 +4739,16 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsh2ss_xmm_k1z_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtsh2ss_xmm_k1z_xmm_xmmm16_sae)], N2, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2psx_xmm_k1z_xmmm64b16)], tupleTypeEnum[nameof(TupleType.N8b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2psx_ymm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtph2psx_zmm_k1z_ymmm256b16_sae)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtph2psx_xmm_k1z_xmmm64b16)], N8b2, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtph2psx_ymm_k1z_xmmm128b16)], N16b2, true }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtph2psx_zmm_k1z_ymmm256b16_sae)], N32b2, true }, }, invalid, }, @@ -4688,23 +4785,23 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscalefph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vscalefph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vscalefph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vscalefph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vscalefph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vscalefph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vscalefsh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vscalefsh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, @@ -4736,23 +4833,23 @@ namespace Generator.Decoder { // 40 invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetexpph_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vgetexpph_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vgetexpph_zmm_k1z_zmmm512b16_sae)], tupleTypeEnum[nameof(TupleType.N64b2)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vgetexpph_xmm_k1z_xmmm128b16)], N16b2, true }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vgetexpph_ymm_k1z_ymmm256b16)], N32b2, true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vgetexpph_zmm_k1z_zmmm512b16_sae)], N64b2, true }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vgetexpsh_xmm_k1z_xmm_xmmm16_sae)], tupleTypeEnum[nameof(TupleType.N2)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vgetexpsh_xmm_k1z_xmm_xmmm16_sae)], N2, true }, invalid, }, invalid, @@ -4768,45 +4865,45 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcpph_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrcpph_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrcpph_zmm_k1z_zmmm512b16)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vrcpph_xmm_k1z_xmmm128b16)], N16b2 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vrcpph_ymm_k1z_ymmm256b16)], N32b2 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vrcpph_zmm_k1z_zmmm512b16)], N64b2 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrcpsh_xmm_k1z_xmm_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { W, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vrcpsh_xmm_k1z_xmm_xmmm16)], N2 }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrtph_xmm_k1z_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vrsqrtph_ymm_k1z_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vrsqrtph_zmm_k1z_zmmm512b16)], tupleTypeEnum[nameof(TupleType.N64b2)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3b, xmm0, code[nameof(Code.EVEX_Vrsqrtph_xmm_k1z_xmmm128b16)], N16b2 }, + new object[] { VkW_3b, ymm0, code[nameof(Code.EVEX_Vrsqrtph_ymm_k1z_ymmm256b16)], N32b2 }, + new object[] { VkW_3b, zmm0, code[nameof(Code.EVEX_Vrsqrtph_zmm_k1z_zmmm512b16)], N64b2 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vrsqrtsh_xmm_k1z_xmm_xmmm16)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { W, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vrsqrtsh_xmm_k1z_xmm_xmmm16)], N2 }, invalid, }, invalid, @@ -4820,35 +4917,35 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddcph_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddcph_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddcph_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_ur_3b, xmm0, code[nameof(Code.EVEX_Vfmaddcph_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_er_ur_3b, ymm0, code[nameof(Code.EVEX_Vfmaddcph_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_er_ur_3b, zmm0, code[nameof(Code.EVEX_Vfmaddcph_zmm_k1z_zmm_zmmm512b32_er)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfcmaddcph_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfcmaddcph_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfcmaddcph_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_ur_3b, xmm0, code[nameof(Code.EVEX_Vfcmaddcph_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_er_ur_3b, ymm0, code[nameof(Code.EVEX_Vfcmaddcph_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_er_ur_3b, zmm0, code[nameof(Code.EVEX_Vfcmaddcph_zmm_k1z_zmm_zmmm512b32_er)], N64b4 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddcsh_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VkHW_er_ur_3, xmm0, code[nameof(Code.EVEX_Vfmaddcsh_xmm_k1z_xmm_xmmm32_er)], N4 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfcmaddcsh_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VkHW_er_ur_3, xmm0, code[nameof(Code.EVEX_Vfcmaddcsh_xmm_k1z_xmm_xmmm32_er)], N4 }, invalid, }, }, @@ -4930,26 +5027,26 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub132ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub132ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub132ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub132ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd132ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd132ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd132ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd132ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, @@ -4958,89 +5055,89 @@ namespace Generator.Decoder { }, // 98 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd132ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd132ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd132ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd132sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd132sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub132ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub132ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub132ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub132sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub132sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd132ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd132ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd132ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd132sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd132sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub132ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub132ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub132ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub132sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub132sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, @@ -5054,26 +5151,26 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub213ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub213ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub213ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub213ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd213ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd213ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd213ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd213ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, @@ -5082,89 +5179,89 @@ namespace Generator.Decoder { }, // A8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd213ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd213ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd213ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd213sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd213sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub213ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub213ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub213ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub213sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub213sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd213ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd213ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd213ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd213sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd213sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub213ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub213ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub213ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub213sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub213sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, @@ -5178,26 +5275,26 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmaddsub231ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmaddsub231ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmaddsub231ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmaddsub231ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsubadd231ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsubadd231ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsubadd231ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsubadd231ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, @@ -5206,89 +5303,89 @@ namespace Generator.Decoder { }, // B8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmadd231ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmadd231ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmadd231ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmadd231sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmadd231sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfmsub231ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfmsub231ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfmsub231ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmsub231sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfmsub231sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmadd231ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmadd231ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmadd231ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmadd231sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmadd231sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ph_xmm_k1z_xmm_xmmm128b16)], tupleTypeEnum[nameof(TupleType.N16b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ph_ymm_k1z_ymm_ymmm256b16)], tupleTypeEnum[nameof(TupleType.N32b2)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231ph_zmm_k1z_zmm_zmmm512b16_er)], tupleTypeEnum[nameof(TupleType.N64b2)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vfnmsub231ph_xmm_k1z_xmm_xmmm128b16)], N16b2, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vfnmsub231ph_ymm_k1z_ymm_ymmm256b16)], N32b2, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vfnmsub231ph_zmm_k1z_zmm_zmmm512b16_er)], N64b2, false }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfnmsub231sh_xmm_k1z_xmm_xmmm16_er)], tupleTypeEnum[nameof(TupleType.N2)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vfnmsub231sh_xmm_k1z_xmm_xmmm16_er)], N2, false }, invalid, }, invalid, @@ -5322,35 +5419,35 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmulcph_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfmulcph_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfmulcph_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_ur_3b, xmm0, code[nameof(Code.EVEX_Vfmulcph_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_er_ur_3b, ymm0, code[nameof(Code.EVEX_Vfmulcph_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_er_ur_3b, zmm0, code[nameof(Code.EVEX_Vfmulcph_zmm_k1z_zmm_zmmm512b32_er)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfcmulcph_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vfcmulcph_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vfcmulcph_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_ur_3b, xmm0, code[nameof(Code.EVEX_Vfcmulcph_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_er_ur_3b, ymm0, code[nameof(Code.EVEX_Vfcmulcph_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_er_ur_3b, zmm0, code[nameof(Code.EVEX_Vfcmulcph_zmm_k1z_zmm_zmmm512b32_er)], N64b4 }, }, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfmulcsh_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VkHW_er_ur_3, xmm0, code[nameof(Code.EVEX_Vfmulcsh_xmm_k1z_xmm_xmmm32_er)], N4 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_ur_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vfcmulcsh_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { VkHW_er_ur_3, xmm0, code[nameof(Code.EVEX_Vfcmulcsh_xmm_k1z_xmm_xmmm32_er)], N4 }, invalid, }, }, @@ -5429,117 +5526,117 @@ namespace Generator.Decoder { invalid, // 10 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovups_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovups_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovups_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovups_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovups_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovups_zmm_k1z_zmmm512)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovupd_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovupd_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovupd_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovupd_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovupd_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovupd_zmm_k1z_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovss_xmm_k1z_xmm_xmm)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovss_xmm_k1z_m32)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { RM, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vmovss_xmm_k1z_xmm_xmm)], N1 }, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovss_xmm_k1z_m32)], N4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsd_xmm_k1z_xmm_xmm)], tupleTypeEnum[nameof(TupleType.N1)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsd_xmm_k1z_m64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { RM, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vmovsd_xmm_k1z_xmm_xmm)], N1 }, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovsd_xmm_k1z_m64)], N8 }, }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovups_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovups_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovups_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovups_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovups_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovups_zmmm512_k1z_zmm)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovupd_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovupd_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovupd_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovupd_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovupd_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovupd_zmmm512_k1z_zmm)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkHV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovss_xmm_k1z_xmm_xmm_0F11)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovss_m32_k1_xmm)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { W, + new object[] { RM, + new object[] { WkHV, xmm0, code[nameof(Code.EVEX_Vmovss_xmm_k1z_xmm_xmm_0F11)] }, + new object[] { WkV_4b, xmm0, code[nameof(Code.EVEX_Vmovss_m32_k1_xmm)], N4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkHV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsd_xmm_k1z_xmm_xmm_0F11)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsd_m64_k1_xmm)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { RM, + new object[] { WkHV, xmm0, code[nameof(Code.EVEX_Vmovsd_xmm_k1z_xmm_xmm_0F11)] }, + new object[] { WkV_4b, xmm0, code[nameof(Code.EVEX_Vmovsd_m64_k1_xmm)], N8, false }, }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovhlps_xmm_xmm_xmm)], codeEnum[nameof(Code.EVEX_Vmovlps_xmm_xmm_m64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, code[nameof(Code.EVEX_Vmovhlps_xmm_xmm_xmm)], code[nameof(Code.EVEX_Vmovlps_xmm_xmm_m64)], N8 }, invalid, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHM)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovlpd_xmm_xmm_m64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.EVEX_Vmovlpd_xmm_xmm_m64)], N8 }, invalid, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovsldup_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovsldup_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovsldup_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovsldup_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovsldup_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovsldup_zmm_k1z_zmmm512)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovddup_xmm_k1z_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovddup_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovddup_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovddup_xmm_k1z_xmmm64)], N8 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovddup_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovddup_zmm_k1z_zmmm512)], N64 }, }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovlps_m64_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovlps_m64_xmm)], N8 }, invalid, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovlpd_m64_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovlpd_m64_xmm)], N8 }, invalid, invalid, }, @@ -5547,86 +5644,86 @@ namespace Generator.Decoder { invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vunpcklps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vunpcklps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vunpcklps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vunpcklps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vunpcklps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vunpcklps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vunpcklpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vunpcklpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vunpcklpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vunpcklpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vunpcklpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vunpcklpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vunpckhps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vunpckhps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vunpckhps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vunpckhps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vunpckhps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vunpckhps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vunpckhpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vunpckhpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vunpckhpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vunpckhpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vunpckhpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vunpckhpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovlhps_xmm_xmm_xmm)], codeEnum[nameof(Code.EVEX_Vmovhps_xmm_xmm_m64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, code[nameof(Code.EVEX_Vmovlhps_xmm_xmm_xmm)], code[nameof(Code.EVEX_Vmovhps_xmm_xmm_m64)], N8 }, invalid, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHM)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovhpd_xmm_xmm_m64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.EVEX_Vmovhpd_xmm_xmm_m64)], N8 }, invalid, invalid, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovshdup_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovshdup_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovshdup_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovshdup_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovshdup_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovshdup_zmm_k1z_zmmm512)], N64 }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovhps_m64_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovhps_m64_xmm)], N8 }, invalid, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovhpd_m64_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovhpd_m64_xmm)], N8 }, invalid, invalid, }, @@ -5656,104 +5753,104 @@ namespace Generator.Decoder { invalid, // 28 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovaps_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovaps_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovaps_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovaps_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovaps_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovaps_zmm_k1z_zmmm512)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovapd_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovapd_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovapd_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovapd_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovapd_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovapd_zmm_k1z_zmmm512)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovaps_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovaps_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovaps_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovaps_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovaps_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovaps_zmmm512_k1z_zmm)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovapd_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovapd_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovapd_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovapd_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovapd_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovapd_zmmm512_k1z_zmm)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsi2ss_xmm_xmm_rm32_er)], codeEnum[nameof(Code.EVEX_Vcvtsi2ss_xmm_xmm_rm64_er)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsi2sd_xmm_xmm_rm32_er)], codeEnum[nameof(Code.EVEX_Vcvtsi2sd_xmm_xmm_rm64_er)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { V_H_Ev_er, xmm0, code[nameof(Code.EVEX_Vcvtsi2ss_xmm_xmm_rm32_er)], code[nameof(Code.EVEX_Vcvtsi2ss_xmm_xmm_rm64_er)], N4, N8 }, + new object[] { V_H_Ev_er, xmm0, code[nameof(Code.EVEX_Vcvtsi2sd_xmm_xmm_rm32_er)], code[nameof(Code.EVEX_Vcvtsi2sd_xmm_xmm_rm64_er)], N4, N8 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovntps_m128_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovntps_m256_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovntps_m512_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovntps_m128_xmm)], N16 }, + new object[] { MV, ymm0, code[nameof(Code.EVEX_Vmovntps_m256_ymm)], N32 }, + new object[] { MV, zmm0, code[nameof(Code.EVEX_Vmovntps_m512_zmm)], N64 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovntpd_m128_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovntpd_m256_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovntpd_m512_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovntpd_m128_xmm)], N16 }, + new object[] { MV, ymm0, code[nameof(Code.EVEX_Vmovntpd_m256_ymm)], N32 }, + new object[] { MV, zmm0, code[nameof(Code.EVEX_Vmovntpd_m512_zmm)], N64 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttss2si_r32_xmmm32_sae)], codeEnum[nameof(Code.EVEX_Vcvttss2si_r64_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttsd2si_r32_xmmm64_sae)], codeEnum[nameof(Code.EVEX_Vcvttsd2si_r64_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvttss2si_r32_xmmm32_sae)], code[nameof(Code.EVEX_Vcvttss2si_r64_xmmm32_sae)], N4, true }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvttsd2si_r32_xmmm64_sae)], code[nameof(Code.EVEX_Vcvttsd2si_r64_xmmm64_sae)], N8, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtss2si_r32_xmmm32_er)], codeEnum[nameof(Code.EVEX_Vcvtss2si_r64_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsd2si_r32_xmmm64_er)], codeEnum[nameof(Code.EVEX_Vcvtsd2si_r64_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvtss2si_r32_xmmm32_er)], code[nameof(Code.EVEX_Vcvtss2si_r64_xmmm32_er)], N4, false }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvtsd2si_r32_xmmm64_er)], code[nameof(Code.EVEX_Vcvtsd2si_r64_xmmm64_er)], N8, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vucomiss_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VW_er, xmm0, code[nameof(Code.EVEX_Vucomiss_xmm_xmmm32_sae)], N4 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vucomisd_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VW_er, xmm0, code[nameof(Code.EVEX_Vucomisd_xmm_xmmm64_sae)], N8 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcomiss_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VW_er, xmm0, code[nameof(Code.EVEX_Vcomiss_xmm_xmmm32_sae)], N4 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcomisd_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VW_er, xmm0, code[nameof(Code.EVEX_Vcomisd_xmm_xmmm64_sae)], N8 }, }, invalid, invalid, @@ -5801,109 +5898,109 @@ namespace Generator.Decoder { // 50 invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsqrtps_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vsqrtps_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vsqrtps_zmm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vsqrtps_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vsqrtps_ymm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vsqrtps_zmm_k1z_zmmm512b32_er)], N64b4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsqrtpd_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vsqrtpd_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vsqrtpd_zmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vsqrtpd_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vsqrtpd_ymm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vsqrtpd_zmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsqrtss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vsqrtss_xmm_k1z_xmm_xmmm32_er)], N4, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsqrtsd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vsqrtsd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vandps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vandps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vandps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vandps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vandps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vandps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vandpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vandpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vandpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vandpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vandpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vandpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vandnps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vandnps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vandnps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vandnps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vandnps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vandnps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vandnpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vandnpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vandnpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vandnpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vandnpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vandnpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vorps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vorps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vorps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vorps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vorps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vorps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vorpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vorpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vorpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vorpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vorpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vorpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vxorps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vxorps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vxorps_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vxorps_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vxorps_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vxorps_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vxorpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vxorpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vxorpd_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vxorpd_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vxorpd_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vxorpd_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -5911,483 +6008,483 @@ namespace Generator.Decoder { }, // 58 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaddps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaddps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaddps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vaddps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vaddps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vaddps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaddpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vaddpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vaddpd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vaddpd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vaddpd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vaddpd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaddss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vaddss_xmm_k1z_xmm_xmmm32_er)], N4, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vaddsd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vaddsd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmulps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmulps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmulps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vmulps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vmulps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vmulps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmulpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmulpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmulpd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vmulpd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vmulpd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vmulpd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmulss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vmulss_xmm_k1z_xmm_xmmm32_er)], N4, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmulsd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vmulsd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2pd_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2pd_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2pd_zmm_k1z_ymmm256b32_sae)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtps2pd_xmm_k1z_xmmm64b32)], N8b4, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtps2pd_ymm_k1z_xmmm128b32)], N16b4, true }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtps2pd_zmm_k1z_ymmm256b32_sae)], N32b4, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2ps_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2ps_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2ps_ymm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtpd2ps_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtpd2ps_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtpd2ps_ymm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtss2sd_xmm_k1z_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtss2sd_xmm_k1z_xmm_xmmm32_sae)], N4, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsd2ss_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtsd2ss_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2ps_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2ps_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2ps_zmm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtdq2ps_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvtdq2ps_ymm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvtdq2ps_zmm_k1z_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2ps_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2ps_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2ps_ymm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtqq2ps_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtqq2ps_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtqq2ps_ymm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2dq_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2dq_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2dq_zmm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvtps2dq_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvtps2dq_ymm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvtps2dq_zmm_k1z_zmmm512b32_er)], N64b4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2dq_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2dq_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_4)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2dq_zmm_k1z_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_4, xmm0, code[nameof(Code.EVEX_Vcvttps2dq_xmm_k1z_xmmm128b32)], N16b4, true }, + new object[] { VkW_er_4, ymm0, code[nameof(Code.EVEX_Vcvttps2dq_ymm_k1z_ymmm256b32)], N32b4, true }, + new object[] { VkW_er_4, zmm0, code[nameof(Code.EVEX_Vcvttps2dq_zmm_k1z_zmmm512b32_sae)], N64b4, true }, }, invalid, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsubps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vsubps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vsubps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vsubps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vsubps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vsubps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsubpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vsubpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vsubpd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vsubpd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vsubpd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vsubpd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsubss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vsubss_xmm_k1z_xmm_xmmm32_er)], N4, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vsubsd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vsubsd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vminps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vminps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vminps_zmm_k1z_zmm_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vminps_xmm_k1z_xmm_xmmm128b32)], N16b4, true }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vminps_ymm_k1z_ymm_ymmm256b32)], N32b4, true }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vminps_zmm_k1z_zmm_zmmm512b32_sae)], N64b4, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vminpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vminpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vminpd_zmm_k1z_zmm_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vminpd_xmm_k1z_xmm_xmmm128b64)], N16b8, true }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vminpd_ymm_k1z_ymm_ymmm256b64)], N32b8, true }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vminpd_zmm_k1z_zmm_zmmm512b64_sae)], N64b8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vminss_xmm_k1z_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vminss_xmm_k1z_xmm_xmmm32_sae)], N4, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vminsd_xmm_k1z_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vminsd_xmm_k1z_xmm_xmmm64_sae)], N8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdivps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vdivps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vdivps_zmm_k1z_zmm_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vdivps_xmm_k1z_xmm_xmmm128b32)], N16b4, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vdivps_ymm_k1z_ymm_ymmm256b32)], N32b4, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vdivps_zmm_k1z_zmm_zmmm512b32_er)], N64b4, false }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdivpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vdivpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vdivpd_zmm_k1z_zmm_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vdivpd_xmm_k1z_xmm_xmmm128b64)], N16b8, false }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vdivpd_ymm_k1z_ymm_ymmm256b64)], N32b8, false }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vdivpd_zmm_k1z_zmm_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdivss_xmm_k1z_xmm_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vdivss_xmm_k1z_xmm_xmmm32_er)], N4, false }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vdivsd_xmm_k1z_xmm_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vdivsd_xmm_k1z_xmm_xmmm64_er)], N8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmaxps_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmaxps_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmaxps_zmm_k1z_zmm_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vmaxps_xmm_k1z_xmm_xmmm128b32)], N16b4, true }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vmaxps_ymm_k1z_ymm_ymmm256b32)], N32b4, true }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vmaxps_zmm_k1z_zmm_zmmm512b32_sae)], N64b4, true }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmaxpd_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmaxpd_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmaxpd_zmm_k1z_zmm_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkHW_er_4b, xmm0, code[nameof(Code.EVEX_Vmaxpd_xmm_k1z_xmm_xmmm128b64)], N16b8, true }, + new object[] { VkHW_er_4b, ymm0, code[nameof(Code.EVEX_Vmaxpd_ymm_k1z_ymm_ymmm256b64)], N32b8, true }, + new object[] { VkHW_er_4b, zmm0, code[nameof(Code.EVEX_Vmaxpd_zmm_k1z_zmm_zmmm512b64_sae)], N64b8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmaxss_xmm_k1z_xmm_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, + new object[] { W, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vmaxss_xmm_k1z_xmm_xmmm32_sae)], N4, true }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_er_4)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmaxsd_xmm_k1z_xmm_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { VkHW_er_4, xmm0, code[nameof(Code.EVEX_Vmaxsd_xmm_k1z_xmm_xmmm64_sae)], N8, true }, }, }, // 60 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklbw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklbw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklbw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpunpcklbw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpunpcklbw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpunpcklbw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklwd_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklwd_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklwd_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpunpcklwd_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpunpcklwd_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpunpcklwd_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpckldq_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpckldq_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpckldq_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpunpckldq_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpunpckldq_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpunpckldq_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpacksswb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpacksswb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpacksswb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpacksswb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpacksswb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpacksswb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtb_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtb_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtb_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vpcmpgtb_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vpcmpgtb_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vpcmpgtb_kr_k1_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtw_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtw_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtw_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vpcmpgtw_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vpcmpgtw_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vpcmpgtw_kr_k1_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtd_kr_k1_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtd_kr_k1_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpgtd_kr_k1_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vpcmpgtd_kr_k1_xmm_xmmm128b32)], N16b4 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vpcmpgtd_kr_k1_ymm_ymmm256b32)], N32b4 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vpcmpgtd_kr_k1_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpackuswb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpackuswb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpackuswb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpackuswb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpackuswb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpackuswb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, // 68 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhbw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhbw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhbw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpunpckhbw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpunpckhbw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpunpckhbw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhwd_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhwd_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhwd_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpunpckhwd_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpunpckhwd_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpunpckhwd_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhdq_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhdq_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhdq_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpunpckhdq_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpunpckhdq_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpunpckhdq_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpackssdw_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpackssdw_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpackssdw_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpackssdw_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpackssdw_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpackssdw_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklqdq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklqdq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpcklqdq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpunpcklqdq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpunpcklqdq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpunpcklqdq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhqdq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhqdq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpunpckhqdq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpunpckhqdq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpunpckhqdq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpunpckhqdq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VX_Ev)], codeEnum[nameof(Code.EVEX_Vmovd_xmm_rm32)], codeEnum[nameof(Code.EVEX_Vmovq_xmm_rm64)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VX_Ev, code[nameof(Code.EVEX_Vmovd_xmm_rm32)], code[nameof(Code.EVEX_Vmovq_xmm_rm64)], N4, N8 }, invalid, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa32_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa32_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa32_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovdqa32_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovdqa32_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovdqa32_zmm_k1z_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa64_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa64_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa64_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovdqa64_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovdqa64_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovdqa64_zmm_k1z_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu32_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu32_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu32_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovdqu32_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovdqu32_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovdqu32_zmm_k1z_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu64_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu64_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu64_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovdqu64_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovdqu64_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovdqu64_zmm_k1z_zmmm512)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu8_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu8_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu8_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovdqu8_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovdqu8_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovdqu8_zmm_k1z_zmmm512)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu16_xmm_k1z_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu16_ymm_k1z_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu16_zmm_k1z_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkW_3, xmm0, code[nameof(Code.EVEX_Vmovdqu16_xmm_k1z_xmmm128)], N16 }, + new object[] { VkW_3, ymm0, code[nameof(Code.EVEX_Vmovdqu16_ymm_k1z_ymmm256)], N32 }, + new object[] { VkW_3, zmm0, code[nameof(Code.EVEX_Vmovdqu16_zmm_k1z_zmmm512)], N64 }, }, }, }, // 70 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshufd_xmm_k1z_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshufd_ymm_k1z_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshufd_zmm_k1z_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkWIb_3b, xmm0, code[nameof(Code.EVEX_Vpshufd_xmm_k1z_xmmm128b32_imm8)], N16b4 }, + new object[] { VkWIb_3b, ymm0, code[nameof(Code.EVEX_Vpshufd_ymm_k1z_ymmm256b32_imm8)], N32b4 }, + new object[] { VkWIb_3b, zmm0, code[nameof(Code.EVEX_Vpshufd_zmm_k1z_zmmm512b32_imm8)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshufhw_xmm_k1z_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshufhw_ymm_k1z_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshufhw_zmm_k1z_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkWIb_3, xmm0, code[nameof(Code.EVEX_Vpshufhw_xmm_k1z_xmmm128_imm8)], N16 }, + new object[] { VkWIb_3, ymm0, code[nameof(Code.EVEX_Vpshufhw_ymm_k1z_ymmm256_imm8)], N32 }, + new object[] { VkWIb_3, zmm0, code[nameof(Code.EVEX_Vpshufhw_zmm_k1z_zmmm512_imm8)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpshuflw_xmm_k1z_xmmm128_imm8)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpshuflw_ymm_k1z_ymmm256_imm8)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkWIb_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpshuflw_zmm_k1z_zmmm512_imm8)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkWIb_3, xmm0, code[nameof(Code.EVEX_Vpshuflw_xmm_k1z_xmmm128_imm8)], N16 }, + new object[] { VkWIb_3, ymm0, code[nameof(Code.EVEX_Vpshuflw_ymm_k1z_ymmm256_imm8)], N32 }, + new object[] { VkWIb_3, zmm0, code[nameof(Code.EVEX_Vpshuflw_zmm_k1z_zmmm512_imm8)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Group)], "handlers_Grp_0F71" }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Group)], "handlers_Grp_0F72" }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Group)], "handlers_Grp_0F73" }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { Group, "handlers_Grp_0F71" }, + new object[] { Group, "handlers_Grp_0F72" }, + new object[] { Group, "handlers_Grp_0F73" }, + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqb_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqb_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqb_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vpcmpeqb_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vpcmpeqb_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vpcmpeqb_kr_k1_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqw_kr_k1_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqw_kr_k1_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqw_kr_k1_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { KkHW_3, xmm0, code[nameof(Code.EVEX_Vpcmpeqw_kr_k1_xmm_xmmm128)], N16 }, + new object[] { KkHW_3, ymm0, code[nameof(Code.EVEX_Vpcmpeqw_kr_k1_ymm_ymmm256)], N32 }, + new object[] { KkHW_3, zmm0, code[nameof(Code.EVEX_Vpcmpeqw_kr_k1_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqd_kr_k1_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqd_kr_k1_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpcmpeqd_kr_k1_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { KkHW_3b, xmm0, code[nameof(Code.EVEX_Vpcmpeqd_kr_k1_xmm_xmmm128b32)], N16b4 }, + new object[] { KkHW_3b, ymm0, code[nameof(Code.EVEX_Vpcmpeqd_kr_k1_ymm_ymmm256b32)], N32b4 }, + new object[] { KkHW_3b, zmm0, code[nameof(Code.EVEX_Vpcmpeqd_kr_k1_zmm_zmmm512b32)], N64b4 }, }, invalid, }, @@ -6397,173 +6494,173 @@ namespace Generator.Decoder { invalid, // 78 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2udq_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2udq_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2udq_zmm_k1z_zmmm512b32_sae)], tupleTypeEnum[nameof(TupleType.N64b4)], true }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttps2udq_xmm_k1z_xmmm128b32)], N16b4, true }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvttps2udq_ymm_k1z_ymmm256b32)], N32b4, true }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvttps2udq_zmm_k1z_zmmm512b32_sae)], N64b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2udq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2udq_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2udq_ymm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttpd2udq_xmm_k1z_xmmm128b64)], N16b8, true }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvttpd2udq_xmm_k1z_ymmm256b64)], N32b8, true }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvttpd2udq_ymm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2uqq_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2uqq_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2uqq_zmm_k1z_ymmm256b32_sae)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttps2uqq_xmm_k1z_xmmm64b32)], N8b4, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvttps2uqq_ymm_k1z_xmmm128b32)], N16b4, true }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvttps2uqq_zmm_k1z_ymmm256b32_sae)], N32b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2uqq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2uqq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2uqq_zmm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttpd2uqq_xmm_k1z_xmmm128b64)], N16b8, true }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvttpd2uqq_ymm_k1z_ymmm256b64)], N32b8, true }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvttpd2uqq_zmm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttss2usi_r32_xmmm32_sae)], codeEnum[nameof(Code.EVEX_Vcvttss2usi_r64_xmmm32_sae)], tupleTypeEnum[nameof(TupleType.N4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttsd2usi_r32_xmmm64_sae)], codeEnum[nameof(Code.EVEX_Vcvttsd2usi_r64_xmmm64_sae)], tupleTypeEnum[nameof(TupleType.N8)], true }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvttss2usi_r32_xmmm32_sae)], code[nameof(Code.EVEX_Vcvttss2usi_r64_xmmm32_sae)], N4, true }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvttsd2usi_r32_xmmm64_sae)], code[nameof(Code.EVEX_Vcvttsd2usi_r64_xmmm64_sae)], N8, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2udq_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2udq_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2udq_zmm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtps2udq_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvtps2udq_ymm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvtps2udq_zmm_k1z_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2udq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2udq_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2udq_ymm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtpd2udq_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtpd2udq_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtpd2udq_ymm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2uqq_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2uqq_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2uqq_zmm_k1z_ymmm256b32_er)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtps2uqq_xmm_k1z_xmmm64b32)], N8b4, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtps2uqq_ymm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtps2uqq_zmm_k1z_ymmm256b32_er)], N32b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2uqq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2uqq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2uqq_zmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtpd2uqq_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvtpd2uqq_ymm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvtpd2uqq_zmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtss2usi_r32_xmmm32_er)], codeEnum[nameof(Code.EVEX_Vcvtss2usi_r64_xmmm32_er)], tupleTypeEnum[nameof(TupleType.N4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Gv_W_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtsd2usi_r32_xmmm64_er)], codeEnum[nameof(Code.EVEX_Vcvtsd2usi_r64_xmmm64_er)], tupleTypeEnum[nameof(TupleType.N8)], false }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvtss2usi_r32_xmmm32_er)], code[nameof(Code.EVEX_Vcvtss2usi_r64_xmmm32_er)], N4, false }, + new object[] { Gv_W_er, xmm0, code[nameof(Code.EVEX_Vcvtsd2usi_r32_xmmm64_er)], code[nameof(Code.EVEX_Vcvtsd2usi_r64_xmmm64_er)], N8, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2qq_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2qq_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttps2qq_zmm_k1z_ymmm256b32_sae)], tupleTypeEnum[nameof(TupleType.N32b4)], true }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttps2qq_xmm_k1z_xmmm64b32)], N8b4, true }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvttps2qq_ymm_k1z_xmmm128b32)], N16b4, true }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvttps2qq_zmm_k1z_ymmm256b32_sae)], N32b4, true }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2qq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2qq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2qq_zmm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttpd2qq_xmm_k1z_xmmm128b64)], N16b8, true }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvttpd2qq_ymm_k1z_ymmm256b64)], N32b8, true }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvttpd2qq_zmm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2pd_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2pd_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2pd_zmm_k1z_ymmm256b32_er)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtudq2pd_xmm_k1z_xmmm64b32)], N8b4, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtudq2pd_ymm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtudq2pd_zmm_k1z_ymmm256b32_er)], N32b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2pd_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2pd_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2pd_zmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtuqq2pd_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvtuqq2pd_ymm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvtuqq2pd_zmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2ps_xmm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2ps_ymm_k1z_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtudq2ps_zmm_k1z_zmmm512b32_er)], tupleTypeEnum[nameof(TupleType.N64b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtudq2ps_xmm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvtudq2ps_ymm_k1z_ymmm256b32)], N32b4, false }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvtudq2ps_zmm_k1z_zmmm512b32_er)], N64b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2ps_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2ps_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtuqq2ps_ymm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtuqq2ps_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtuqq2ps_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtuqq2ps_ymm_k1z_zmmm512b64_er)], N64b8, false }, }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2qq_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2qq_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtps2qq_zmm_k1z_ymmm256b32_er)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtps2qq_xmm_k1z_xmmm64b32)], N8b4, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtps2qq_ymm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtps2qq_zmm_k1z_ymmm256b32_er)], N32b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2qq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2qq_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2qq_zmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtpd2qq_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvtpd2qq_ymm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvtpd2qq_zmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtusi2ss_xmm_xmm_rm32_er)], codeEnum[nameof(Code.EVEX_Vcvtusi2ss_xmm_xmm_rm64_er)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_er)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtusi2sd_xmm_xmm_rm32_er)], codeEnum[nameof(Code.EVEX_Vcvtusi2sd_xmm_xmm_rm64_er)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { V_H_Ev_er, xmm0, code[nameof(Code.EVEX_Vcvtusi2ss_xmm_xmm_rm32_er)], code[nameof(Code.EVEX_Vcvtusi2ss_xmm_xmm_rm64_er)], N4, N8 }, + new object[] { V_H_Ev_er, xmm0, code[nameof(Code.EVEX_Vcvtusi2sd_xmm_xmm_rm32_er)], code[nameof(Code.EVEX_Vcvtusi2sd_xmm_xmm_rm64_er)], N4, N8 }, }, invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Ev_VX)], codeEnum[nameof(Code.EVEX_Vmovd_rm32_xmm)], codeEnum[nameof(Code.EVEX_Vmovq_rm64_xmm)], tupleTypeEnum[nameof(TupleType.N4)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { Ev_VX, code[nameof(Code.EVEX_Vmovd_rm32_xmm)], code[nameof(Code.EVEX_Vmovq_rm64_xmm)], N4, N8 }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VW)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovq_xmm_xmmm64)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { VW, xmm0, code[nameof(Code.EVEX_Vmovq_xmm_xmmm64)], N8 }, invalid, invalid, }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa32_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa32_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa32_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovdqa32_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovdqa32_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovdqa32_zmmm512_k1z_zmm)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa64_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa64_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqa64_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovdqa64_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovdqa64_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovdqa64_zmmm512_k1z_zmm)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu32_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu32_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu32_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovdqu32_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovdqu32_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovdqu32_zmmm512_k1z_zmm)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu64_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu64_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu64_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovdqu64_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovdqu64_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovdqu64_zmmm512_k1z_zmm)], N64 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu8_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu8_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu8_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovdqu8_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovdqu8_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovdqu8_zmmm512_k1z_zmm)], N64 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu16_xmmm128_k1z_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu16_ymmm256_k1z_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WkV_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovdqu16_zmmm512_k1z_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { WkV_3, xmm0, code[nameof(Code.EVEX_Vmovdqu16_xmmm128_k1z_xmm)], N16 }, + new object[] { WkV_3, ymm0, code[nameof(Code.EVEX_Vmovdqu16_ymmm256_k1z_ymm)], N32 }, + new object[] { WkV_3, zmm0, code[nameof(Code.EVEX_Vmovdqu16_zmmm512_k1z_zmm)], N64 }, }, }, }, @@ -6651,43 +6748,43 @@ namespace Generator.Decoder { // C0 invalid, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcmpps_kr_k1_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcmpps_kr_k1_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcmpps_kr_k1_zmm_zmmm512b32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength_er, + new object[] { KkHWIb_sae_3b, xmm0, code[nameof(Code.EVEX_Vcmpps_kr_k1_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { KkHWIb_sae_3b, ymm0, code[nameof(Code.EVEX_Vcmpps_kr_k1_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { KkHWIb_sae_3b, zmm0, code[nameof(Code.EVEX_Vcmpps_kr_k1_zmm_zmmm512b32_imm8_sae)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcmppd_kr_k1_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcmppd_kr_k1_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcmppd_kr_k1_zmm_zmmm512b64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength_er, + new object[] { KkHWIb_sae_3b, xmm0, code[nameof(Code.EVEX_Vcmppd_kr_k1_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { KkHWIb_sae_3b, ymm0, code[nameof(Code.EVEX_Vcmppd_kr_k1_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { KkHWIb_sae_3b, zmm0, code[nameof(Code.EVEX_Vcmppd_kr_k1_zmm_zmmm512b64_imm8_sae)], N64b8 }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcmpss_kr_k1_xmm_xmmm32_imm8_sae)], tupleTypeEnum[nameof(TupleType.N4)] }, + new object[] { W, + new object[] { KkHWIb_sae_3, xmm0, code[nameof(Code.EVEX_Vcmpss_kr_k1_xmm_xmmm32_imm8_sae)], N4 }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.KkHWIb_sae_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcmpsd_kr_k1_xmm_xmmm64_imm8_sae)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { KkHWIb_sae_3, xmm0, code[nameof(Code.EVEX_Vcmpsd_kr_k1_xmm_xmmm64_imm8_sae)], N8 }, }, }, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r32m16_imm8)], codeEnum[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r64m16_imm8)], tupleTypeEnum[nameof(TupleType.N2)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { V_H_Ev_Ib, xmm0, code[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r32m16_imm8)], code[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r64m16_imm8)], N2, N2 }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.V_H_Ev_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r32m16_imm8)], codeEnum[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r64m16_imm8)], tupleTypeEnum[nameof(TupleType.N2)], tupleTypeEnum[nameof(TupleType.N2)] }, + new object[] { VectorLength, + new object[] { V_H_Ev_Ib, xmm0, code[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r32m16_imm8)], code[nameof(Code.EVEX_Vpinsrw_xmm_xmm_r64m16_imm8)], N2, N2 }, invalid, invalid, }, @@ -6695,20 +6792,20 @@ namespace Generator.Decoder { invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Ev_VX_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpextrw_r32_xmm_imm8)], codeEnum[nameof(Code.EVEX_Vpextrw_r64_xmm_imm8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { Ev_VX_Ib, xmm0, code[nameof(Code.EVEX_Vpextrw_r32_xmm_imm8)], code[nameof(Code.EVEX_Vpextrw_r64_xmm_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.RM)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.Ev_VX_Ib)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpextrw_r32_xmm_imm8)], codeEnum[nameof(Code.EVEX_Vpextrw_r64_xmm_imm8)] }, + new object[] { VectorLength, + new object[] { RM, + new object[] { Ev_VX_Ib, xmm0, code[nameof(Code.EVEX_Vpextrw_r32_xmm_imm8)], code[nameof(Code.EVEX_Vpextrw_r64_xmm_imm8)] }, invalid, }, invalid, @@ -6718,21 +6815,21 @@ namespace Generator.Decoder { invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vshufps_xmm_k1z_xmm_xmmm128b32_imm8)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vshufps_ymm_k1z_ymm_ymmm256b32_imm8)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vshufps_zmm_k1z_zmm_zmmm512b32_imm8)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { MandatoryPrefix2, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vshufps_xmm_k1z_xmm_xmmm128b32_imm8)], N16b4 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vshufps_ymm_k1z_ymm_ymmm256b32_imm8)], N32b4 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vshufps_zmm_k1z_zmm_zmmm512b32_imm8)], N64b4 }, }, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vshufpd_xmm_k1z_xmm_xmmm128b64_imm8)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vshufpd_ymm_k1z_ymm_ymmm256b64_imm8)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHWIb_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vshufpd_zmm_k1z_zmm_zmmm512b64_imm8)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHWIb_3b, xmm0, code[nameof(Code.EVEX_Vshufpd_xmm_k1z_xmm_xmmm128b64_imm8)], N16b8 }, + new object[] { VkHWIb_3b, ymm0, code[nameof(Code.EVEX_Vshufpd_ymm_k1z_ymm_ymmm256b64_imm8)], N32b8 }, + new object[] { VkHWIb_3b, zmm0, code[nameof(Code.EVEX_Vshufpd_zmm_k1z_zmm_zmmm512b64_imm8)], N64b8 }, }, }, invalid, @@ -6752,71 +6849,71 @@ namespace Generator.Decoder { // D0 invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlw_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlw_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsrlw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsrlw_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsrlw_zmm_k1z_zmm_xmmm128)], N16 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrld_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrld_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrld_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsrld_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsrld_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsrld_zmm_k1z_zmm_xmmm128)], N16 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlq_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlq_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrlq_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsrlq_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsrlq_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsrlq_zmm_k1z_zmm_xmmm128)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpaddq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpaddq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpaddq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmullw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmullw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmullw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmullw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmullw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmullw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.WV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovq_xmmm64_xmm)], tupleTypeEnum[nameof(TupleType.N8)] }, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.EVEX_Vmovq_xmmm64_xmm)], N8 }, invalid, invalid, }, @@ -6827,95 +6924,95 @@ namespace Generator.Decoder { invalid, // D8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubusb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubusb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubusb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsubusb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsubusb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsubusb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubusw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubusw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubusw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsubusw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsubusw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsubusw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminub_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminub_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminub_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpminub_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpminub_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpminub_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpandd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpandd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpandd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpandd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpandd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpandd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpandq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpandq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpandq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpandq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpandq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpandq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddusb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddusb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddusb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpaddusb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpaddusb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpaddusb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddusw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddusw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddusw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpaddusw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpaddusw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpaddusw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxub_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxub_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxub_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmaxub_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmaxub_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmaxub_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpandnd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpandnd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpandnd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpandnd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpandnd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpandnd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpandnq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpandnq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpandnq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpandnq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpandnq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpandnq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -6923,111 +7020,111 @@ namespace Generator.Decoder { }, // E0 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpavgb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpavgb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpavgb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpavgb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpavgb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpavgb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraw_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraw_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsraw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsraw_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsraw_zmm_k1z_zmm_xmmm128)], N16 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrad_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrad_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsrad_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsrad_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsrad_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsrad_zmm_k1z_zmm_xmmm128)], N16 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraq_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraq_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsraq_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsraq_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsraq_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsraq_zmm_k1z_zmm_xmmm128)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpavgw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpavgw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpavgw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpavgw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpavgw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpavgw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmulhuw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmulhuw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmulhuw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmulhuw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmulhuw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmulhuw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmulhw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmulhw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmulhw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmulhw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmulhw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmulhw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2dq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2dq_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], true }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvttpd2dq_ymm_k1z_zmmm512b64_sae)], tupleTypeEnum[nameof(TupleType.N64b8)], true }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvttpd2dq_xmm_k1z_xmmm128b64)], N16b8, true }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvttpd2dq_xmm_k1z_ymmm256b64)], N32b8, true }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvttpd2dq_ymm_k1z_zmmm512b64_sae)], N64b8, true }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2pd_xmm_k1z_xmmm64b32)], tupleTypeEnum[nameof(TupleType.N8b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2pd_ymm_k1z_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtdq2pd_zmm_k1z_ymmm256b32_er)], tupleTypeEnum[nameof(TupleType.N32b4)], false }, + new object[] { W, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtdq2pd_xmm_k1z_xmmm64b32)], N8b4, false }, + new object[] { VkW_er_5, ymm0, xmm0, code[nameof(Code.EVEX_Vcvtdq2pd_ymm_k1z_xmmm128b32)], N16b4, false }, + new object[] { VkW_er_5, zmm0, ymm0, code[nameof(Code.EVEX_Vcvtdq2pd_zmm_k1z_ymmm256b32_er)], N32b4, false }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2pd_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2pd_ymm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtqq2pd_zmm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtqq2pd_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, ymm0, ymm0, code[nameof(Code.EVEX_Vcvtqq2pd_ymm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, zmm0, zmm0, code[nameof(Code.EVEX_Vcvtqq2pd_zmm_k1z_zmmm512b64_er)], N64b8, false }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength_er)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2dq_xmm_k1z_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2dq_xmm_k1z_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)], false }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkW_er_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vcvtpd2dq_ymm_k1z_zmmm512b64_er)], tupleTypeEnum[nameof(TupleType.N64b8)], false }, + new object[] { VectorLength_er, + new object[] { VkW_er_5, xmm0, xmm0, code[nameof(Code.EVEX_Vcvtpd2dq_xmm_k1z_xmmm128b64)], N16b8, false }, + new object[] { VkW_er_5, xmm0, ymm0, code[nameof(Code.EVEX_Vcvtpd2dq_xmm_k1z_ymmm256b64)], N32b8, false }, + new object[] { VkW_er_5, ymm0, zmm0, code[nameof(Code.EVEX_Vcvtpd2dq_ymm_k1z_zmmm512b64_er)], N64b8, false }, }, }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vmovntdq_m128_xmm)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vmovntdq_m256_ymm)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MV)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vmovntdq_m512_zmm)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.EVEX_Vmovntdq_m128_xmm)], N16 }, + new object[] { MV, ymm0, code[nameof(Code.EVEX_Vmovntdq_m256_ymm)], N32 }, + new object[] { MV, zmm0, code[nameof(Code.EVEX_Vmovntdq_m512_zmm)], N64 }, }, invalid, }, @@ -7036,95 +7133,95 @@ namespace Generator.Decoder { }, // E8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubsb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubsb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubsb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsubsb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsubsb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsubsb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubsw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubsw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubsw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsubsw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsubsw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsubsw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpminsw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpminsw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpminsw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpminsw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpminsw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpminsw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpord_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpord_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpord_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpord_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpord_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpord_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vporq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vporq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vporq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vporq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vporq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vporq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddsb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddsb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddsb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpaddsb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpaddsb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpaddsb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddsw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddsw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddsw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpaddsw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpaddsw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpaddsw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaxsw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmaxsw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmaxsw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmaxsw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpxord_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpxord_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpxord_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpxord_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpxord_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpxord_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpxorq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpxorq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpxorq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpxorq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpxorq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpxorq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, @@ -7133,71 +7230,71 @@ namespace Generator.Decoder { // F0 invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllw_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllw_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsllw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsllw_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsllw_zmm_k1z_zmm_xmmm128)], N16 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpslld_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpslld_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpslld_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpslld_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpslld_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpslld_zmm_k1z_zmm_xmmm128)], N16 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllq_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.YMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllq_ymm_k1z_ymm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_5)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.ZMM0)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsllq_zmm_k1z_zmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, + new object[] { VectorLength, + new object[] { VkHW_5, xmm0, xmm0, xmm0, code[nameof(Code.EVEX_Vpsllq_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_5, ymm0, ymm0, xmm0, code[nameof(Code.EVEX_Vpsllq_ymm_k1z_ymm_xmmm128)], N16 }, + new object[] { VkHW_5, zmm0, zmm0, xmm0, code[nameof(Code.EVEX_Vpsllq_zmm_k1z_zmm_xmmm128)], N16 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmuludq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmuludq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmuludq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpmuludq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpmuludq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpmuludq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpmaddwd_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpmaddwd_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpmaddwd_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpmaddwd_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpmaddwd_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpmaddwd_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsadbw_xmm_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsadbw_ymm_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsadbw_zmm_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.EVEX_Vpsadbw_xmm_xmm_xmmm128)], N16 }, + new object[] { VHW_3, ymm0, code[nameof(Code.EVEX_Vpsadbw_ymm_ymm_ymmm256)], N32 }, + new object[] { VHW_3, zmm0, code[nameof(Code.EVEX_Vpsadbw_zmm_zmm_zmmm512)], N64 }, }, invalid, invalid, @@ -7205,79 +7302,79 @@ namespace Generator.Decoder { invalid, // F8 - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsubb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsubb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsubb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpsubw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpsubw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpsubw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsubd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsubd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsubd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpsubq_xmm_k1z_xmm_xmmm128b64)], tupleTypeEnum[nameof(TupleType.N16b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpsubq_ymm_k1z_ymm_ymmm256b64)], tupleTypeEnum[nameof(TupleType.N32b8)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpsubq_zmm_k1z_zmm_zmmm512b64)], tupleTypeEnum[nameof(TupleType.N64b8)] }, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpsubq_xmm_k1z_xmm_xmmm128b64)], N16b8 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpsubq_ymm_k1z_ymm_ymmm256b64)], N32b8 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpsubq_zmm_k1z_zmm_zmmm512b64)], N64b8 }, }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddb_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddb_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddb_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpaddb_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpaddb_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpaddb_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddw_xmm_k1z_xmm_xmmm128)], tupleTypeEnum[nameof(TupleType.N16)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddw_ymm_k1z_ymm_ymmm256)], tupleTypeEnum[nameof(TupleType.N32)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddw_zmm_k1z_zmm_zmmm512)], tupleTypeEnum[nameof(TupleType.N64)] }, + new object[] { VectorLength, + new object[] { VkHW_3, xmm0, code[nameof(Code.EVEX_Vpaddw_xmm_k1z_xmm_xmmm128)], N16 }, + new object[] { VkHW_3, ymm0, code[nameof(Code.EVEX_Vpaddw_ymm_k1z_ymm_ymmm256)], N32 }, + new object[] { VkHW_3, zmm0, code[nameof(Code.EVEX_Vpaddw_zmm_k1z_zmm_zmmm512)], N64 }, }, invalid, invalid, }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.MandatoryPrefix2)], + new object[] { MandatoryPrefix2, invalid, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.W)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VectorLength)], - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.EVEX_Vpaddd_xmm_k1z_xmm_xmmm128b32)], tupleTypeEnum[nameof(TupleType.N16b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.EVEX_Vpaddd_ymm_k1z_ymm_ymmm256b32)], tupleTypeEnum[nameof(TupleType.N32b4)] }, - new object[] { evexEnum[nameof(EvexOpCodeHandlerKind.VkHW_3b)], regEnum[nameof(Register.ZMM0)], codeEnum[nameof(Code.EVEX_Vpaddd_zmm_k1z_zmm_zmmm512b32)], tupleTypeEnum[nameof(TupleType.N64b4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VkHW_3b, xmm0, code[nameof(Code.EVEX_Vpaddd_xmm_k1z_xmm_xmmm128b32)], N16b4 }, + new object[] { VkHW_3b, ymm0, code[nameof(Code.EVEX_Vpaddd_ymm_k1z_ymm_ymmm256b32)], N32b4 }, + new object[] { VkHW_3b, zmm0, code[nameof(Code.EVEX_Vpaddd_zmm_k1z_zmm_zmmm512b32)], N64b4 }, }, invalid, }, diff --git a/src/csharp/Intel/Generator/Decoder/DecoderTable_Legacy.cs b/src/csharp/Intel/Generator/Decoder/DecoderTable_Legacy.cs index 52e9cd002..ece991f40 100644 --- a/src/csharp/Intel/Generator/Decoder/DecoderTable_Legacy.cs +++ b/src/csharp/Intel/Generator/Decoder/DecoderTable_Legacy.cs @@ -9,200 +9,422 @@ namespace Generator.Decoder { public const string Handlers_MAP0 = nameof(Handlers_MAP0); public static (string name, object?[] handlers)[] CreateHandlers(GenTypes genTypes) { - var legacyEnum = genTypes[TypeIds.OpCodeHandlerKind]; - var codeEnum = genTypes[TypeIds.Code]; - var decoderOptionsEnum = genTypes[TypeIds.DecoderOptions]; - var registerEnum = genTypes[TypeIds.Register]; - var handlerFlagsEnum = genTypes[TypeIds.HandlerFlags]; - var legacyHandlerFlagsEnum = genTypes[TypeIds.LegacyHandlerFlags]; + var kind = genTypes[TypeIds.OpCodeHandlerKind]; + var code = genTypes[TypeIds.Code]; + var options = genTypes[TypeIds.DecoderOptions]; + var reg = genTypes[TypeIds.Register]; + var handlerFlags = genTypes[TypeIds.HandlerFlags]; + var legacyHandlerFlags = genTypes[TypeIds.LegacyHandlerFlags]; - var invalid = new object[] { legacyEnum[nameof(OpCodeHandlerKind.Invalid)] }; - var invalid_NoModRM = new object[] { legacyEnum[nameof(OpCodeHandlerKind.Invalid_NoModRM)] }; + var Bitness = kind[nameof(OpCodeHandlerKind.Bitness)]; + var Bitness_DontReadModRM = kind[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)]; + var RM = kind[nameof(OpCodeHandlerKind.RM)]; + var Options3 = kind[nameof(OpCodeHandlerKind.Options3)]; + var Options5 = kind[nameof(OpCodeHandlerKind.Options5)]; + var Options_DontReadModRM = kind[nameof(OpCodeHandlerKind.Options_DontReadModRM)]; + var AnotherTable = kind[nameof(OpCodeHandlerKind.AnotherTable)]; + var Group = kind[nameof(OpCodeHandlerKind.Group)]; + var Group8x64 = kind[nameof(OpCodeHandlerKind.Group8x64)]; + var Group8x8 = kind[nameof(OpCodeHandlerKind.Group8x8)]; + var MandatoryPrefix = kind[nameof(OpCodeHandlerKind.MandatoryPrefix)]; + var MandatoryPrefix4 = kind[nameof(OpCodeHandlerKind.MandatoryPrefix4)]; + var Ev_REXW_1a = kind[nameof(OpCodeHandlerKind.Ev_REXW_1a)]; + var MandatoryPrefix_NoModRM = kind[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)]; + var MandatoryPrefix3 = kind[nameof(OpCodeHandlerKind.MandatoryPrefix3)]; + var D3NOW = kind[nameof(OpCodeHandlerKind.D3NOW)]; + var EVEX = kind[nameof(OpCodeHandlerKind.EVEX)]; + var VEX2 = kind[nameof(OpCodeHandlerKind.VEX2)]; + var VEX3 = kind[nameof(OpCodeHandlerKind.VEX3)]; + var XOP = kind[nameof(OpCodeHandlerKind.XOP)]; + var AL_DX = kind[nameof(OpCodeHandlerKind.AL_DX)]; + var Ap = kind[nameof(OpCodeHandlerKind.Ap)]; + var B_BM = kind[nameof(OpCodeHandlerKind.B_BM)]; + var B_Ev = kind[nameof(OpCodeHandlerKind.B_Ev)]; + var B_MIB = kind[nameof(OpCodeHandlerKind.B_MIB)]; + var BM_B = kind[nameof(OpCodeHandlerKind.BM_B)]; + var BranchIw = kind[nameof(OpCodeHandlerKind.BranchIw)]; + var BranchSimple = kind[nameof(OpCodeHandlerKind.BranchSimple)]; + var C_R_3a = kind[nameof(OpCodeHandlerKind.C_R_3a)]; + var C_R_3b = kind[nameof(OpCodeHandlerKind.C_R_3b)]; + var DX_AL = kind[nameof(OpCodeHandlerKind.DX_AL)]; + var DX_eAX = kind[nameof(OpCodeHandlerKind.DX_eAX)]; + var eAX_DX = kind[nameof(OpCodeHandlerKind.eAX_DX)]; + var Eb_1 = kind[nameof(OpCodeHandlerKind.Eb_1)]; + var Eb_2 = kind[nameof(OpCodeHandlerKind.Eb_2)]; + var Eb_CL = kind[nameof(OpCodeHandlerKind.Eb_CL)]; + var Eb_Gb_1 = kind[nameof(OpCodeHandlerKind.Eb_Gb_1)]; + var Eb_Gb_2 = kind[nameof(OpCodeHandlerKind.Eb_Gb_2)]; + var Eb_Ib_1 = kind[nameof(OpCodeHandlerKind.Eb_Ib_1)]; + var Eb_Ib_2 = kind[nameof(OpCodeHandlerKind.Eb_Ib_2)]; + var Eb1 = kind[nameof(OpCodeHandlerKind.Eb1)]; + var Ed_V_Ib = kind[nameof(OpCodeHandlerKind.Ed_V_Ib)]; + var Ep = kind[nameof(OpCodeHandlerKind.Ep)]; + var Ev_3a = kind[nameof(OpCodeHandlerKind.Ev_3a)]; + var Ev_3b = kind[nameof(OpCodeHandlerKind.Ev_3b)]; + var Ev_4 = kind[nameof(OpCodeHandlerKind.Ev_4)]; + var Ev_CL = kind[nameof(OpCodeHandlerKind.Ev_CL)]; + var Ev_Gv_32_64 = kind[nameof(OpCodeHandlerKind.Ev_Gv_32_64)]; + var Ev_Gv_3a = kind[nameof(OpCodeHandlerKind.Ev_Gv_3a)]; + var Ev_Gv_3b = kind[nameof(OpCodeHandlerKind.Ev_Gv_3b)]; + var Ev_Gv_4 = kind[nameof(OpCodeHandlerKind.Ev_Gv_4)]; + var Ev_Gv_CL = kind[nameof(OpCodeHandlerKind.Ev_Gv_CL)]; + var Ev_Gv_Ib = kind[nameof(OpCodeHandlerKind.Ev_Gv_Ib)]; + var Ev_Gv_REX = kind[nameof(OpCodeHandlerKind.Ev_Gv_REX)]; + var Ev_Ib_3 = kind[nameof(OpCodeHandlerKind.Ev_Ib_3)]; + var Ev_Ib_4 = kind[nameof(OpCodeHandlerKind.Ev_Ib_4)]; + var Ev_Ib2_3 = kind[nameof(OpCodeHandlerKind.Ev_Ib2_3)]; + var Ev_Ib2_4 = kind[nameof(OpCodeHandlerKind.Ev_Ib2_4)]; + var Ev_Iz_3 = kind[nameof(OpCodeHandlerKind.Ev_Iz_3)]; + var Ev_Iz_4 = kind[nameof(OpCodeHandlerKind.Ev_Iz_4)]; + var Ev_P = kind[nameof(OpCodeHandlerKind.Ev_P)]; + var Ev_REXW = kind[nameof(OpCodeHandlerKind.Ev_REXW)]; + var Ev_Sw = kind[nameof(OpCodeHandlerKind.Ev_Sw)]; + var Ev_VX = kind[nameof(OpCodeHandlerKind.Ev_VX)]; + var Ev1 = kind[nameof(OpCodeHandlerKind.Ev1)]; + var Evj = kind[nameof(OpCodeHandlerKind.Evj)]; + var Evw = kind[nameof(OpCodeHandlerKind.Evw)]; + var Ew = kind[nameof(OpCodeHandlerKind.Ew)]; + var Gb_Eb = kind[nameof(OpCodeHandlerKind.Gb_Eb)]; + var Gdq_Ev = kind[nameof(OpCodeHandlerKind.Gdq_Ev)]; + var Gv_Eb = kind[nameof(OpCodeHandlerKind.Gv_Eb)]; + var Gv_Eb_REX = kind[nameof(OpCodeHandlerKind.Gv_Eb_REX)]; + var Gv_Ev_32_64 = kind[nameof(OpCodeHandlerKind.Gv_Ev_32_64)]; + var Gv_Ev_3a = kind[nameof(OpCodeHandlerKind.Gv_Ev_3a)]; + var Gv_Ev_3b = kind[nameof(OpCodeHandlerKind.Gv_Ev_3b)]; + var Gv_Ev_Ib = kind[nameof(OpCodeHandlerKind.Gv_Ev_Ib)]; + var Gv_Ev_Ib_REX = kind[nameof(OpCodeHandlerKind.Gv_Ev_Ib_REX)]; + var Gv_Ev_Iz = kind[nameof(OpCodeHandlerKind.Gv_Ev_Iz)]; + var Gv_Ev_REX = kind[nameof(OpCodeHandlerKind.Gv_Ev_REX)]; + var Gv_Ev2 = kind[nameof(OpCodeHandlerKind.Gv_Ev2)]; + var Gv_Ev3 = kind[nameof(OpCodeHandlerKind.Gv_Ev3)]; + var Gv_Ew = kind[nameof(OpCodeHandlerKind.Gv_Ew)]; + var Gv_M = kind[nameof(OpCodeHandlerKind.Gv_M)]; + var Gv_M_as = kind[nameof(OpCodeHandlerKind.Gv_M_as)]; + var Gv_Ma = kind[nameof(OpCodeHandlerKind.Gv_Ma)]; + var Gv_Mp_2 = kind[nameof(OpCodeHandlerKind.Gv_Mp_2)]; + var Gv_Mp_3 = kind[nameof(OpCodeHandlerKind.Gv_Mp_3)]; + var Gv_Mv = kind[nameof(OpCodeHandlerKind.Gv_Mv)]; + var Gv_N = kind[nameof(OpCodeHandlerKind.Gv_N)]; + var Gv_N_Ib_REX = kind[nameof(OpCodeHandlerKind.Gv_N_Ib_REX)]; + var Gv_RX = kind[nameof(OpCodeHandlerKind.Gv_RX)]; + var Gv_W = kind[nameof(OpCodeHandlerKind.Gv_W)]; + var GvM_VX_Ib = kind[nameof(OpCodeHandlerKind.GvM_VX_Ib)]; + var Ib = kind[nameof(OpCodeHandlerKind.Ib)]; + var Ib3 = kind[nameof(OpCodeHandlerKind.Ib3)]; + var IbReg = kind[nameof(OpCodeHandlerKind.IbReg)]; + var IbReg2 = kind[nameof(OpCodeHandlerKind.IbReg2)]; + var Iw_Ib = kind[nameof(OpCodeHandlerKind.Iw_Ib)]; + var Jb = kind[nameof(OpCodeHandlerKind.Jb)]; + var Jb2 = kind[nameof(OpCodeHandlerKind.Jb2)]; + var Jdisp = kind[nameof(OpCodeHandlerKind.Jdisp)]; + var Jx = kind[nameof(OpCodeHandlerKind.Jx)]; + var Jz = kind[nameof(OpCodeHandlerKind.Jz)]; + var M_1 = kind[nameof(OpCodeHandlerKind.M_1)]; + var M_2 = kind[nameof(OpCodeHandlerKind.M_2)]; + var M_REXW_2 = kind[nameof(OpCodeHandlerKind.M_REXW_2)]; + var M_REXW_4 = kind[nameof(OpCodeHandlerKind.M_REXW_4)]; + var MemBx = kind[nameof(OpCodeHandlerKind.MemBx)]; + var Mf_1 = kind[nameof(OpCodeHandlerKind.Mf_1)]; + var Mf_2a = kind[nameof(OpCodeHandlerKind.Mf_2a)]; + var Mf_2b = kind[nameof(OpCodeHandlerKind.Mf_2b)]; + var MIB_B = kind[nameof(OpCodeHandlerKind.MIB_B)]; + var MP = kind[nameof(OpCodeHandlerKind.MP)]; + var Ms = kind[nameof(OpCodeHandlerKind.Ms)]; + var MV = kind[nameof(OpCodeHandlerKind.MV)]; + var Mv_Gv = kind[nameof(OpCodeHandlerKind.Mv_Gv)]; + var Mv_Gv_REXW = kind[nameof(OpCodeHandlerKind.Mv_Gv_REXW)]; + var NIb = kind[nameof(OpCodeHandlerKind.NIb)]; + var Ob_Reg = kind[nameof(OpCodeHandlerKind.Ob_Reg)]; + var Ov_Reg = kind[nameof(OpCodeHandlerKind.Ov_Reg)]; + var P_Ev = kind[nameof(OpCodeHandlerKind.P_Ev)]; + var P_Ev_Ib = kind[nameof(OpCodeHandlerKind.P_Ev_Ib)]; + var P_Q = kind[nameof(OpCodeHandlerKind.P_Q)]; + var P_Q_Ib = kind[nameof(OpCodeHandlerKind.P_Q_Ib)]; + var P_R = kind[nameof(OpCodeHandlerKind.P_R)]; + var P_W = kind[nameof(OpCodeHandlerKind.P_W)]; + var PushEv = kind[nameof(OpCodeHandlerKind.PushEv)]; + var PushIb2 = kind[nameof(OpCodeHandlerKind.PushIb2)]; + var PushIz = kind[nameof(OpCodeHandlerKind.PushIz)]; + var PushOpSizeReg_4a = kind[nameof(OpCodeHandlerKind.PushOpSizeReg_4a)]; + var PushOpSizeReg_4b = kind[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)]; + var PushSimple2 = kind[nameof(OpCodeHandlerKind.PushSimple2)]; + var PushSimpleReg = kind[nameof(OpCodeHandlerKind.PushSimpleReg)]; + var Q_P = kind[nameof(OpCodeHandlerKind.Q_P)]; + var R_C_3a = kind[nameof(OpCodeHandlerKind.R_C_3a)]; + var R_C_3b = kind[nameof(OpCodeHandlerKind.R_C_3b)]; + var rDI_P_N = kind[nameof(OpCodeHandlerKind.rDI_P_N)]; + var rDI_VX_RX = kind[nameof(OpCodeHandlerKind.rDI_VX_RX)]; + var Reg = kind[nameof(OpCodeHandlerKind.Reg)]; + var Reg_Ib2 = kind[nameof(OpCodeHandlerKind.Reg_Ib2)]; + var Reg_Iz = kind[nameof(OpCodeHandlerKind.Reg_Iz)]; + var Reg_Ob = kind[nameof(OpCodeHandlerKind.Reg_Ob)]; + var Reg_Ov = kind[nameof(OpCodeHandlerKind.Reg_Ov)]; + var Reg_Xb = kind[nameof(OpCodeHandlerKind.Reg_Xb)]; + var Reg_Xv = kind[nameof(OpCodeHandlerKind.Reg_Xv)]; + var Reg_Xv2 = kind[nameof(OpCodeHandlerKind.Reg_Xv2)]; + var Reg_Yb = kind[nameof(OpCodeHandlerKind.Reg_Yb)]; + var Reg_Yv = kind[nameof(OpCodeHandlerKind.Reg_Yv)]; + var RegIb = kind[nameof(OpCodeHandlerKind.RegIb)]; + var RegIb3 = kind[nameof(OpCodeHandlerKind.RegIb3)]; + var RegIz2 = kind[nameof(OpCodeHandlerKind.RegIz2)]; + var Reservednop = kind[nameof(OpCodeHandlerKind.Reservednop)]; + var RIb = kind[nameof(OpCodeHandlerKind.RIb)]; + var RIbIb = kind[nameof(OpCodeHandlerKind.RIbIb)]; + var Rv = kind[nameof(OpCodeHandlerKind.Rv)]; + var Rv_32_64 = kind[nameof(OpCodeHandlerKind.Rv_32_64)]; + var RvMw_Gw = kind[nameof(OpCodeHandlerKind.RvMw_Gw)]; + var Simple = kind[nameof(OpCodeHandlerKind.Simple)]; + var Simple_ModRM = kind[nameof(OpCodeHandlerKind.Simple_ModRM)]; + var Simple2_3a = kind[nameof(OpCodeHandlerKind.Simple2_3a)]; + var Simple2_3b = kind[nameof(OpCodeHandlerKind.Simple2_3b)]; + var Simple2Iw = kind[nameof(OpCodeHandlerKind.Simple2Iw)]; + var Simple3 = kind[nameof(OpCodeHandlerKind.Simple3)]; + var Simple4 = kind[nameof(OpCodeHandlerKind.Simple4)]; + var Simple5 = kind[nameof(OpCodeHandlerKind.Simple5)]; + var Simple5_ModRM_as = kind[nameof(OpCodeHandlerKind.Simple5_ModRM_as)]; + var SimpleReg = kind[nameof(OpCodeHandlerKind.SimpleReg)]; + var ST_STi = kind[nameof(OpCodeHandlerKind.ST_STi)]; + var STi = kind[nameof(OpCodeHandlerKind.STi)]; + var STi_ST = kind[nameof(OpCodeHandlerKind.STi_ST)]; + var Sw_Ev = kind[nameof(OpCodeHandlerKind.Sw_Ev)]; + var V_Ev = kind[nameof(OpCodeHandlerKind.V_Ev)]; + var VM = kind[nameof(OpCodeHandlerKind.VM)]; + var VN = kind[nameof(OpCodeHandlerKind.VN)]; + var VQ = kind[nameof(OpCodeHandlerKind.VQ)]; + var VRIbIb = kind[nameof(OpCodeHandlerKind.VRIbIb)]; + var VW_2 = kind[nameof(OpCodeHandlerKind.VW_2)]; + var VW_3 = kind[nameof(OpCodeHandlerKind.VW_3)]; + var VWIb_2 = kind[nameof(OpCodeHandlerKind.VWIb_2)]; + var VWIb_3 = kind[nameof(OpCodeHandlerKind.VWIb_3)]; + var VX_E_Ib = kind[nameof(OpCodeHandlerKind.VX_E_Ib)]; + var VX_Ev = kind[nameof(OpCodeHandlerKind.VX_Ev)]; + var Wbinvd = kind[nameof(OpCodeHandlerKind.Wbinvd)]; + var WV = kind[nameof(OpCodeHandlerKind.WV)]; + var Xb_Yb = kind[nameof(OpCodeHandlerKind.Xb_Yb)]; + var Xchg_Reg_rAX = kind[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)]; + var Xv_Yv = kind[nameof(OpCodeHandlerKind.Xv_Yv)]; + var Yb_Reg = kind[nameof(OpCodeHandlerKind.Yb_Reg)]; + var Yb_Xb = kind[nameof(OpCodeHandlerKind.Yb_Xb)]; + var Yv_Reg = kind[nameof(OpCodeHandlerKind.Yv_Reg)]; + var Yv_Reg2 = kind[nameof(OpCodeHandlerKind.Yv_Reg2)]; + var Yv_Xv = kind[nameof(OpCodeHandlerKind.Yv_Xv)]; + var Simple4b = kind[nameof(OpCodeHandlerKind.Simple4b)]; + var Options1632_1 = kind[nameof(OpCodeHandlerKind.Options1632_1)]; + var Options1632_2 = kind[nameof(OpCodeHandlerKind.Options1632_2)]; + var M_Sw = kind[nameof(OpCodeHandlerKind.M_Sw)]; + var Sw_M = kind[nameof(OpCodeHandlerKind.Sw_M)]; + var Rq = kind[nameof(OpCodeHandlerKind.Rq)]; + var Gd_Rd = kind[nameof(OpCodeHandlerKind.Gd_Rd)]; + var PrefixEsCsSsDs = kind[nameof(OpCodeHandlerKind.PrefixEsCsSsDs)]; + var PrefixFsGs = kind[nameof(OpCodeHandlerKind.PrefixFsGs)]; + var Prefix66 = kind[nameof(OpCodeHandlerKind.Prefix66)]; + var Prefix67 = kind[nameof(OpCodeHandlerKind.Prefix67)]; + var PrefixF0 = kind[nameof(OpCodeHandlerKind.PrefixF0)]; + var PrefixF2 = kind[nameof(OpCodeHandlerKind.PrefixF2)]; + var PrefixF3 = kind[nameof(OpCodeHandlerKind.PrefixF3)]; + var PrefixREX = kind[nameof(OpCodeHandlerKind.PrefixREX)]; + + var al = reg[nameof(Register.AL)]; + var ax = reg[nameof(Register.AX)]; + var dx = reg[nameof(Register.DX)]; + var es = reg[nameof(Register.ES)]; + var cs = reg[nameof(Register.CS)]; + var ss = reg[nameof(Register.SS)]; + var ds = reg[nameof(Register.DS)]; + var fs = reg[nameof(Register.FS)]; + var gs = reg[nameof(Register.GS)]; + var xmm0 = reg[nameof(Register.XMM0)]; + var cr0 = reg[nameof(Register.CR0)]; + var dr0 = reg[nameof(Register.DR0)]; + var tr0 = reg[nameof(Register.TR0)]; + + var invalid = new object[] { kind[nameof(OpCodeHandlerKind.Invalid)] }; + var invalid_NoModRM = new object[] { kind[nameof(OpCodeHandlerKind.Invalid_NoModRM)] }; var handlers = new (string name, object?[] handlers)[] { ("handlers_FPU_D8_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fadd_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fmul_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fcom_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fcomp_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fsub_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fsubr_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fdiv_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fdivr_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fadd_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fmul_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fcom_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fcomp_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fsub_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fsubr_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fdiv_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fdivr_m32fp)] }, }), ("handlers_FPU_D8_high", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fadd_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fmul_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fsub_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fsubr_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fdiv_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fdivr_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fadd_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fmul_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fsub_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fsubr_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fdiv_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fdivr_st0_sti)] }, }), ("handlers_FPU_D9_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fld_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fld_m32fp)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fst_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fstp_m32fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_2a)], codeEnum[nameof(Code.Fldenv_m14byte)], codeEnum[nameof(Code.Fldenv_m28byte)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fldcw_m2byte)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_2b)], codeEnum[nameof(Code.Fnstenv_m14byte)], codeEnum[nameof(Code.Fnstenv_m28byte)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fnstcw_m2byte)] }, + new object[] { Mf_1, code[nameof(Code.Fst_m32fp)] }, + new object[] { Mf_1, code[nameof(Code.Fstp_m32fp)] }, + new object[] { Mf_2a, code[nameof(Code.Fldenv_m14byte)], code[nameof(Code.Fldenv_m28byte)] }, + new object[] { Mf_1, code[nameof(Code.Fldcw_m2byte)] }, + new object[] { Mf_2b, code[nameof(Code.Fnstenv_m14byte)], code[nameof(Code.Fnstenv_m28byte)] }, + new object[] { Mf_1, code[nameof(Code.Fnstcw_m2byte)] }, }), ("handlers_FPU_D9_high", new object[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, + new object[] { STi, code[nameof(Code.Fld_sti)] }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fnop)] }, + new object[] { Simple, code[nameof(Code.Fnop)] }, invalid, invalid, invalid, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_D9D7)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_D9D7)] }, options[nameof(DecoderOptions.Cyrix)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, + new object[] { STi, code[nameof(Code.Fstpnce_sti)] }, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fchs)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fabs)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Simple, code[nameof(Code.Fchs)] }, + new object[] { Simple, code[nameof(Code.Fabs)] }, + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_D9E2)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_D9E2)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Ftst)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fxam)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Simple, code[nameof(Code.Ftst)] }, + new object[] { Simple, code[nameof(Code.Fxam)] }, + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Ftstp)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Ftstp)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_D9E7)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_D9E7)] }, options[nameof(DecoderOptions.Cyrix)] }, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fld1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fldl2t)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fldl2e)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fldpi)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fldlg2)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fldln2)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fldz)] }, + new object[] { Simple, code[nameof(Code.Fld1)] }, + new object[] { Simple, code[nameof(Code.Fldl2t)] }, + new object[] { Simple, code[nameof(Code.Fldl2e)] }, + new object[] { Simple, code[nameof(Code.Fldpi)] }, + new object[] { Simple, code[nameof(Code.Fldlg2)] }, + new object[] { Simple, code[nameof(Code.Fldln2)] }, + new object[] { Simple, code[nameof(Code.Fldz)] }, invalid, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.F2xm1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fyl2x)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fptan)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fpatan)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fxtract)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fprem1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fdecstp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fincstp)] }, + new object[] { Simple, code[nameof(Code.F2xm1)] }, + new object[] { Simple, code[nameof(Code.Fyl2x)] }, + new object[] { Simple, code[nameof(Code.Fptan)] }, + new object[] { Simple, code[nameof(Code.Fpatan)] }, + new object[] { Simple, code[nameof(Code.Fxtract)] }, + new object[] { Simple, code[nameof(Code.Fprem1)] }, + new object[] { Simple, code[nameof(Code.Fdecstp)] }, + new object[] { Simple, code[nameof(Code.Fincstp)] }, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fprem)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fyl2xp1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fsqrt)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fsincos)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Frndint)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fscale)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fsin)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fcos)] }, + new object[] { Simple, code[nameof(Code.Fprem)] }, + new object[] { Simple, code[nameof(Code.Fyl2xp1)] }, + new object[] { Simple, code[nameof(Code.Fsqrt)] }, + new object[] { Simple, code[nameof(Code.Fsincos)] }, + new object[] { Simple, code[nameof(Code.Frndint)] }, + new object[] { Simple, code[nameof(Code.Fscale)] }, + new object[] { Simple, code[nameof(Code.Fsin)] }, + new object[] { Simple, code[nameof(Code.Fcos)] }, }), ("handlers_FPU_DA_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fiadd_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fimul_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Ficom_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Ficomp_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisub_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisubr_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fidiv_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fidivr_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fiadd_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fimul_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Ficom_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Ficomp_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fisub_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fisubr_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fidiv_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fidivr_m32int)] }, }), ("handlers_FPU_DA_high", new object[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovb_st0_sti)] }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmove_st0_sti)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovbe_st0_sti)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovu_st0_sti)] }, // E0 invalid, @@ -216,7 +438,7 @@ namespace Generator.Decoder { // E8 invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fucompp)] }, + new object[] { Simple, code[nameof(Code.Fucompp)] }, invalid, invalid, invalid, @@ -247,68 +469,68 @@ namespace Generator.Decoder { ("handlers_FPU_DB_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fild_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisttp_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fist_m32int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fistp_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fild_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fisttp_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fist_m32int)] }, + new object[] { Mf_1, code[nameof(Code.Fistp_m32int)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fld_m80fp)] }, + new object[] { Mf_1, code[nameof(Code.Fld_m80fp)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fstp_m80fp)] }, + new object[] { Mf_1, code[nameof(Code.Fstp_m80fp)] }, }), ("handlers_FPU_DB_high", new object[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnb_st0_sti)] }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovne_st0_sti)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnbe_st0_sti)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcmovnu_st0_sti)] }, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fneni)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fndisi)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fnclex)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fninit)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fnsetpm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { Simple, code[nameof(Code.Fneni)] }, + new object[] { Simple, code[nameof(Code.Fndisi)] }, + new object[] { Simple, code[nameof(Code.Fnclex)] }, + new object[] { Simple, code[nameof(Code.Fninit)] }, + new object[] { Simple, code[nameof(Code.Fnsetpm)] }, + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Frstpm)] }, decoderOptionsEnum[nameof(DecoderOptions.OldFpu)] + new object[] { Simple, code[nameof(Code.Frstpm)] }, options[nameof(DecoderOptions.OldFpu)] }, invalid, }, @@ -316,33 +538,33 @@ namespace Generator.Decoder { invalid, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomi_st0_sti)] }, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomi_st0_sti)] }, // F8 invalid, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Frint2)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Frint2)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, invalid, @@ -351,101 +573,101 @@ namespace Generator.Decoder { ("handlers_FPU_DC_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fadd_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fmul_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fcom_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fcomp_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fsub_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fsubr_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fdiv_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fdivr_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fadd_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fmul_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fcom_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fcomp_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fsub_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fsubr_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fdiv_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fdivr_m64fp)] }, }), ("handlers_FPU_DC_high", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fadd_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmul_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcom_st0_sti_DCD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DCD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubr_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsub_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivr_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdiv_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fadd_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmul_sti_st0)] }, + new object[] { ST_STi, code[nameof(Code.Fcom_st0_sti_DCD0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DCD8)] }, + new object[] { STi_ST, code[nameof(Code.Fsubr_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsub_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivr_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdiv_sti_st0)] }, }), ("handlers_FPU_DD_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fld_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisttp_m64int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fst_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fstp_m64fp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_2a)], codeEnum[nameof(Code.Frstor_m94byte)], codeEnum[nameof(Code.Frstor_m108byte)] }, + new object[] { Mf_1, code[nameof(Code.Fld_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fisttp_m64int)] }, + new object[] { Mf_1, code[nameof(Code.Fst_m64fp)] }, + new object[] { Mf_1, code[nameof(Code.Fstp_m64fp)] }, + new object[] { Mf_2a, code[nameof(Code.Frstor_m94byte)], code[nameof(Code.Frstor_m108byte)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_2b)], codeEnum[nameof(Code.Fnsave_m94byte)], codeEnum[nameof(Code.Fnsave_m108byte)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fnstsw_m2byte)] }, + new object[] { Mf_2b, code[nameof(Code.Fnsave_m94byte)], code[nameof(Code.Fnsave_m108byte)] }, + new object[] { Mf_1, code[nameof(Code.Fnstsw_m2byte)] }, }), ("handlers_FPU_DD_high", new object[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, + new object[] { STi, code[nameof(Code.Ffree_sti)] }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DDC8)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, + new object[] { STi, code[nameof(Code.Fst_sti)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, + new object[] { STi, code[nameof(Code.Fstp_sti)] }, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucom_st0_sti)] }, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomp_st0_sti)] }, // F0 invalid, @@ -462,9 +684,9 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Frichop)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Frichop)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, invalid, @@ -473,181 +695,181 @@ namespace Generator.Decoder { ("handlers_FPU_DE_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fiadd_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fimul_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Ficom_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Ficomp_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisub_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisubr_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fidiv_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fidivr_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fiadd_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fimul_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Ficom_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Ficomp_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fisub_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fisubr_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fidiv_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fidivr_m16int)] }, }), ("handlers_FPU_DE_high", new object[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Faddp_sti_st0)] }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fmulp_sti_st0)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, + new object[] { ST_STi, code[nameof(Code.Fcomp_st0_sti_DED0)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_DED8)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_DED8)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Fcompp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Simple, code[nameof(Code.Fcompp)] }, + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_DEDA)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_DEDA)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_DEDC)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_DEDC)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_DEDD)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_DEDD)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cyrix_DEDE)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cyrix_DEDE)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubrp_sti_st0)] }, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fsubp_sti_st0)] }, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivrp_sti_st0)] }, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi_ST)], codeEnum[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, + new object[] { STi_ST, code[nameof(Code.Fdivp_sti_st0)] }, }), ("handlers_FPU_DF_low", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fild_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fisttp_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fist_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fistp_m16int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fbld_m80bcd)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fild_m64int)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fbstp_m80bcd)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mf_1)], codeEnum[nameof(Code.Fistp_m64int)] }, + new object[] { Mf_1, code[nameof(Code.Fild_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fisttp_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fist_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fistp_m16int)] }, + new object[] { Mf_1, code[nameof(Code.Fbld_m80bcd)] }, + new object[] { Mf_1, code[nameof(Code.Fild_m64int)] }, + new object[] { Mf_1, code[nameof(Code.Fbstp_m80bcd)] }, + new object[] { Mf_1, code[nameof(Code.Fistp_m64int)] }, }), ("handlers_FPU_DF_high", new object[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, + new object[] { STi, code[nameof(Code.Ffreep_sti)] }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, + new object[] { ST_STi, code[nameof(Code.Fxch_st0_sti_DFC8)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD0)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.STi)], codeEnum[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, + new object[] { STi, code[nameof(Code.Fstp_sti_DFD8)] }, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg)], codeEnum[nameof(Code.Fnstsw_AX)], registerEnum[nameof(Register.AX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { Reg, code[nameof(Code.Fnstsw_AX)], ax }, + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg)], codeEnum[nameof(Code.Fnstdw_AX)], registerEnum[nameof(Register.AX)] }, decoderOptionsEnum[nameof(DecoderOptions.OldFpu)] + new object[] { Reg, code[nameof(Code.Fnstdw_AX)], ax }, options[nameof(DecoderOptions.OldFpu)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg)], codeEnum[nameof(Code.Fnstsg_AX)], registerEnum[nameof(Register.AX)] }, decoderOptionsEnum[nameof(DecoderOptions.OldFpu)] + new object[] { Reg, code[nameof(Code.Fnstsg_AX)], ax }, options[nameof(DecoderOptions.OldFpu)] }, invalid, }, @@ -658,33 +880,33 @@ namespace Generator.Decoder { invalid, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fucomip_st0_sti)] }, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.ST_STi)], codeEnum[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, + new object[] { ST_STi, code[nameof(Code.Fcomip_st0_sti)] }, // F8 invalid, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Frinear)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Frinear)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, invalid, @@ -693,55 +915,55 @@ namespace Generator.Decoder { ("handlers_Grp_80", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Add_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Or_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Adc_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Sbb_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.And_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Sub_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Xor_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Cmp_rm8_imm8)] }, + new object[] { Eb_Ib_2, code[nameof(Code.Add_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Or_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Adc_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Sbb_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.And_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Sub_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Xor_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_1, code[nameof(Code.Cmp_rm8_imm8)] }, }), ("handlers_Grp_81", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Add_rm16_imm16)], codeEnum[nameof(Code.Add_rm32_imm32)], codeEnum[nameof(Code.Add_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Or_rm16_imm16)], codeEnum[nameof(Code.Or_rm32_imm32)], codeEnum[nameof(Code.Or_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Adc_rm16_imm16)], codeEnum[nameof(Code.Adc_rm32_imm32)], codeEnum[nameof(Code.Adc_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Sbb_rm16_imm16)], codeEnum[nameof(Code.Sbb_rm32_imm32)], codeEnum[nameof(Code.Sbb_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.And_rm16_imm16)], codeEnum[nameof(Code.And_rm32_imm32)], codeEnum[nameof(Code.And_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Sub_rm16_imm16)], codeEnum[nameof(Code.Sub_rm32_imm32)], codeEnum[nameof(Code.Sub_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Xor_rm16_imm16)], codeEnum[nameof(Code.Xor_rm32_imm32)], codeEnum[nameof(Code.Xor_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_3)], codeEnum[nameof(Code.Cmp_rm16_imm16)], codeEnum[nameof(Code.Cmp_rm32_imm32)], codeEnum[nameof(Code.Cmp_rm64_imm32)] }, + new object[] { Ev_Iz_4, code[nameof(Code.Add_rm16_imm16)], code[nameof(Code.Add_rm32_imm32)], code[nameof(Code.Add_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.Or_rm16_imm16)], code[nameof(Code.Or_rm32_imm32)], code[nameof(Code.Or_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.Adc_rm16_imm16)], code[nameof(Code.Adc_rm32_imm32)], code[nameof(Code.Adc_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.Sbb_rm16_imm16)], code[nameof(Code.Sbb_rm32_imm32)], code[nameof(Code.Sbb_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.And_rm16_imm16)], code[nameof(Code.And_rm32_imm32)], code[nameof(Code.And_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.Sub_rm16_imm16)], code[nameof(Code.Sub_rm32_imm32)], code[nameof(Code.Sub_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.Xor_rm16_imm16)], code[nameof(Code.Xor_rm32_imm32)], code[nameof(Code.Xor_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Iz_3, code[nameof(Code.Cmp_rm16_imm16)], code[nameof(Code.Cmp_rm32_imm32)], code[nameof(Code.Cmp_rm64_imm32)] }, }), ("handlers_Grp_82", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Add_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Or_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Adc_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Sbb_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.And_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Sub_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Xor_rm8_imm8_82)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Cmp_rm8_imm8_82)] }, + new object[] { Eb_Ib_2, code[nameof(Code.Add_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Or_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Adc_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Sbb_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.And_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Sub_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Xor_rm8_imm8_82)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_Ib_1, code[nameof(Code.Cmp_rm8_imm8_82)] }, }), ("handlers_Grp_83", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.Add_rm16_imm8)], codeEnum[nameof(Code.Add_rm32_imm8)], codeEnum[nameof(Code.Add_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.Or_rm16_imm8)], codeEnum[nameof(Code.Or_rm32_imm8)], codeEnum[nameof(Code.Or_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.Adc_rm16_imm8)], codeEnum[nameof(Code.Adc_rm32_imm8)], codeEnum[nameof(Code.Adc_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.Sbb_rm16_imm8)], codeEnum[nameof(Code.Sbb_rm32_imm8)], codeEnum[nameof(Code.Sbb_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.And_rm16_imm8)], codeEnum[nameof(Code.And_rm32_imm8)], codeEnum[nameof(Code.And_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.Sub_rm16_imm8)], codeEnum[nameof(Code.Sub_rm32_imm8)], codeEnum[nameof(Code.Sub_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_4)], codeEnum[nameof(Code.Xor_rm16_imm8)], codeEnum[nameof(Code.Xor_rm32_imm8)], codeEnum[nameof(Code.Xor_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib_3)], codeEnum[nameof(Code.Cmp_rm16_imm8)], codeEnum[nameof(Code.Cmp_rm32_imm8)], codeEnum[nameof(Code.Cmp_rm64_imm8)] }, + new object[] { Ev_Ib_4, code[nameof(Code.Add_rm16_imm8)], code[nameof(Code.Add_rm32_imm8)], code[nameof(Code.Add_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_4, code[nameof(Code.Or_rm16_imm8)], code[nameof(Code.Or_rm32_imm8)], code[nameof(Code.Or_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_4, code[nameof(Code.Adc_rm16_imm8)], code[nameof(Code.Adc_rm32_imm8)], code[nameof(Code.Adc_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_4, code[nameof(Code.Sbb_rm16_imm8)], code[nameof(Code.Sbb_rm32_imm8)], code[nameof(Code.Sbb_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_4, code[nameof(Code.And_rm16_imm8)], code[nameof(Code.And_rm32_imm8)], code[nameof(Code.And_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_4, code[nameof(Code.Sub_rm16_imm8)], code[nameof(Code.Sub_rm32_imm8)], code[nameof(Code.Sub_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_4, code[nameof(Code.Xor_rm16_imm8)], code[nameof(Code.Xor_rm32_imm8)], code[nameof(Code.Xor_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib_3, code[nameof(Code.Cmp_rm16_imm8)], code[nameof(Code.Cmp_rm32_imm8)], code[nameof(Code.Cmp_rm64_imm8)] }, }), ("handlers_Grp_8F", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushEv)], codeEnum[nameof(Code.Pop_rm16)], codeEnum[nameof(Code.Pop_rm32)], codeEnum[nameof(Code.Pop_rm64)] }, + new object[] { PushEv, code[nameof(Code.Pop_rm16)], code[nameof(Code.Pop_rm32)], code[nameof(Code.Pop_rm64)] }, invalid, invalid, invalid, @@ -753,104 +975,104 @@ namespace Generator.Decoder { ("handlers_Grp_C0", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Rol_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Ror_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Rcl_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Rcr_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Shl_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Shr_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Sal_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Sar_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Rol_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Ror_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Rcl_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Rcr_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Shl_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Shr_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Sal_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Sar_rm8_imm8)] }, }), ("handlers_Grp_C1", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Rol_rm16_imm8)], codeEnum[nameof(Code.Rol_rm32_imm8)], codeEnum[nameof(Code.Rol_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Ror_rm16_imm8)], codeEnum[nameof(Code.Ror_rm32_imm8)], codeEnum[nameof(Code.Ror_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Rcl_rm16_imm8)], codeEnum[nameof(Code.Rcl_rm32_imm8)], codeEnum[nameof(Code.Rcl_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Rcr_rm16_imm8)], codeEnum[nameof(Code.Rcr_rm32_imm8)], codeEnum[nameof(Code.Rcr_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Shl_rm16_imm8)], codeEnum[nameof(Code.Shl_rm32_imm8)], codeEnum[nameof(Code.Shl_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Shr_rm16_imm8)], codeEnum[nameof(Code.Shr_rm32_imm8)], codeEnum[nameof(Code.Shr_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Sal_rm16_imm8)], codeEnum[nameof(Code.Sal_rm32_imm8)], codeEnum[nameof(Code.Sal_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Sar_rm16_imm8)], codeEnum[nameof(Code.Sar_rm32_imm8)], codeEnum[nameof(Code.Sar_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Rol_rm16_imm8)], code[nameof(Code.Rol_rm32_imm8)], code[nameof(Code.Rol_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Ror_rm16_imm8)], code[nameof(Code.Ror_rm32_imm8)], code[nameof(Code.Ror_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Rcl_rm16_imm8)], code[nameof(Code.Rcl_rm32_imm8)], code[nameof(Code.Rcl_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Rcr_rm16_imm8)], code[nameof(Code.Rcr_rm32_imm8)], code[nameof(Code.Rcr_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Shl_rm16_imm8)], code[nameof(Code.Shl_rm32_imm8)], code[nameof(Code.Shl_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Shr_rm16_imm8)], code[nameof(Code.Shr_rm32_imm8)], code[nameof(Code.Shr_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Sal_rm16_imm8)], code[nameof(Code.Sal_rm32_imm8)], code[nameof(Code.Sal_rm64_imm8)] }, + new object[] { Ev_Ib2_3, code[nameof(Code.Sar_rm16_imm8)], code[nameof(Code.Sar_rm32_imm8)], code[nameof(Code.Sar_rm64_imm8)] }, }), ("handlers_Grp_D0", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Rol_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Ror_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Rcl_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Rcr_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Shl_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Shr_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Sal_rm8_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb1)], codeEnum[nameof(Code.Sar_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Rol_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Ror_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Rcl_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Rcr_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Shl_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Shr_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Sal_rm8_1)] }, + new object[] { Eb1, code[nameof(Code.Sar_rm8_1)] }, }), ("handlers_Grp_D1", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Rol_rm16_1)], codeEnum[nameof(Code.Rol_rm32_1)], codeEnum[nameof(Code.Rol_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Ror_rm16_1)], codeEnum[nameof(Code.Ror_rm32_1)], codeEnum[nameof(Code.Ror_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Rcl_rm16_1)], codeEnum[nameof(Code.Rcl_rm32_1)], codeEnum[nameof(Code.Rcl_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Rcr_rm16_1)], codeEnum[nameof(Code.Rcr_rm32_1)], codeEnum[nameof(Code.Rcr_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Shl_rm16_1)], codeEnum[nameof(Code.Shl_rm32_1)], codeEnum[nameof(Code.Shl_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Shr_rm16_1)], codeEnum[nameof(Code.Shr_rm32_1)], codeEnum[nameof(Code.Shr_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Sal_rm16_1)], codeEnum[nameof(Code.Sal_rm32_1)], codeEnum[nameof(Code.Sal_rm64_1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev1)], codeEnum[nameof(Code.Sar_rm16_1)], codeEnum[nameof(Code.Sar_rm32_1)], codeEnum[nameof(Code.Sar_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Rol_rm16_1)], code[nameof(Code.Rol_rm32_1)], code[nameof(Code.Rol_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Ror_rm16_1)], code[nameof(Code.Ror_rm32_1)], code[nameof(Code.Ror_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Rcl_rm16_1)], code[nameof(Code.Rcl_rm32_1)], code[nameof(Code.Rcl_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Rcr_rm16_1)], code[nameof(Code.Rcr_rm32_1)], code[nameof(Code.Rcr_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Shl_rm16_1)], code[nameof(Code.Shl_rm32_1)], code[nameof(Code.Shl_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Shr_rm16_1)], code[nameof(Code.Shr_rm32_1)], code[nameof(Code.Shr_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Sal_rm16_1)], code[nameof(Code.Sal_rm32_1)], code[nameof(Code.Sal_rm64_1)] }, + new object[] { Ev1, code[nameof(Code.Sar_rm16_1)], code[nameof(Code.Sar_rm32_1)], code[nameof(Code.Sar_rm64_1)] }, }), ("handlers_Grp_D2", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Rol_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Ror_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Rcl_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Rcr_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Shl_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Shr_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Sal_rm8_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_CL)], codeEnum[nameof(Code.Sar_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Rol_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Ror_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Rcl_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Rcr_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Shl_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Shr_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Sal_rm8_CL)] }, + new object[] { Eb_CL, code[nameof(Code.Sar_rm8_CL)] }, }), ("handlers_Grp_D3", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Rol_rm16_CL)], codeEnum[nameof(Code.Rol_rm32_CL)], codeEnum[nameof(Code.Rol_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Ror_rm16_CL)], codeEnum[nameof(Code.Ror_rm32_CL)], codeEnum[nameof(Code.Ror_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Rcl_rm16_CL)], codeEnum[nameof(Code.Rcl_rm32_CL)], codeEnum[nameof(Code.Rcl_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Rcr_rm16_CL)], codeEnum[nameof(Code.Rcr_rm32_CL)], codeEnum[nameof(Code.Rcr_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Shl_rm16_CL)], codeEnum[nameof(Code.Shl_rm32_CL)], codeEnum[nameof(Code.Shl_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Shr_rm16_CL)], codeEnum[nameof(Code.Shr_rm32_CL)], codeEnum[nameof(Code.Shr_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Sal_rm16_CL)], codeEnum[nameof(Code.Sal_rm32_CL)], codeEnum[nameof(Code.Sal_rm64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_CL)], codeEnum[nameof(Code.Sar_rm16_CL)], codeEnum[nameof(Code.Sar_rm32_CL)], codeEnum[nameof(Code.Sar_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Rol_rm16_CL)], code[nameof(Code.Rol_rm32_CL)], code[nameof(Code.Rol_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Ror_rm16_CL)], code[nameof(Code.Ror_rm32_CL)], code[nameof(Code.Ror_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Rcl_rm16_CL)], code[nameof(Code.Rcl_rm32_CL)], code[nameof(Code.Rcl_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Rcr_rm16_CL)], code[nameof(Code.Rcr_rm32_CL)], code[nameof(Code.Rcr_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Shl_rm16_CL)], code[nameof(Code.Shl_rm32_CL)], code[nameof(Code.Shl_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Shr_rm16_CL)], code[nameof(Code.Shr_rm32_CL)], code[nameof(Code.Shr_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Sal_rm16_CL)], code[nameof(Code.Sal_rm32_CL)], code[nameof(Code.Sal_rm64_CL)] }, + new object[] { Ev_CL, code[nameof(Code.Sar_rm16_CL)], code[nameof(Code.Sar_rm32_CL)], code[nameof(Code.Sar_rm64_CL)] }, }), ("handlers_Grp_F6", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Test_rm8_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_1)], codeEnum[nameof(Code.Test_rm8_imm8_F6r1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_2)], codeEnum[nameof(Code.Not_rm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_2)], codeEnum[nameof(Code.Neg_rm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Mul_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Imul_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Div_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Idiv_rm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Test_rm8_imm8)] }, + new object[] { Eb_Ib_1, code[nameof(Code.Test_rm8_imm8_F6r1)] }, + new object[] { Eb_2, code[nameof(Code.Not_rm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_2, code[nameof(Code.Neg_rm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_1, code[nameof(Code.Mul_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Imul_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Div_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Idiv_rm8)] }, }), ("handlers_Grp_F7", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_3)], codeEnum[nameof(Code.Test_rm16_imm16)], codeEnum[nameof(Code.Test_rm32_imm32)], codeEnum[nameof(Code.Test_rm64_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_3)], codeEnum[nameof(Code.Test_rm16_imm16_F7r1)], codeEnum[nameof(Code.Test_rm32_imm32_F7r1)], codeEnum[nameof(Code.Test_rm64_imm32_F7r1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_4)], codeEnum[nameof(Code.Not_rm16)], codeEnum[nameof(Code.Not_rm32)], codeEnum[nameof(Code.Not_rm64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_4)], codeEnum[nameof(Code.Neg_rm16)], codeEnum[nameof(Code.Neg_rm32)], codeEnum[nameof(Code.Neg_rm64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_3a)], codeEnum[nameof(Code.Mul_rm16)], codeEnum[nameof(Code.Mul_rm32)], codeEnum[nameof(Code.Mul_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_3a)], codeEnum[nameof(Code.Imul_rm16)], codeEnum[nameof(Code.Imul_rm32)], codeEnum[nameof(Code.Imul_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_3a)], codeEnum[nameof(Code.Div_rm16)], codeEnum[nameof(Code.Div_rm32)], codeEnum[nameof(Code.Div_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_3a)], codeEnum[nameof(Code.Idiv_rm16)], codeEnum[nameof(Code.Idiv_rm32)], codeEnum[nameof(Code.Idiv_rm64)] }, + new object[] { Ev_Iz_3, code[nameof(Code.Test_rm16_imm16)], code[nameof(Code.Test_rm32_imm32)], code[nameof(Code.Test_rm64_imm32)] }, + new object[] { Ev_Iz_3, code[nameof(Code.Test_rm16_imm16_F7r1)], code[nameof(Code.Test_rm32_imm32_F7r1)], code[nameof(Code.Test_rm64_imm32_F7r1)] }, + new object[] { Ev_4, code[nameof(Code.Not_rm16)], code[nameof(Code.Not_rm32)], code[nameof(Code.Not_rm64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_4, code[nameof(Code.Neg_rm16)], code[nameof(Code.Neg_rm32)], code[nameof(Code.Neg_rm64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_3a, code[nameof(Code.Mul_rm16)], code[nameof(Code.Mul_rm32)], code[nameof(Code.Mul_rm64)] }, + new object[] { Ev_3a, code[nameof(Code.Imul_rm16)], code[nameof(Code.Imul_rm32)], code[nameof(Code.Imul_rm64)] }, + new object[] { Ev_3a, code[nameof(Code.Div_rm16)], code[nameof(Code.Div_rm32)], code[nameof(Code.Div_rm64)] }, + new object[] { Ev_3a, code[nameof(Code.Idiv_rm16)], code[nameof(Code.Idiv_rm32)], code[nameof(Code.Idiv_rm64)] }, }), ("handlers_Grp_FE", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_2)], codeEnum[nameof(Code.Inc_rm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_2)], codeEnum[nameof(Code.Dec_rm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_2, code[nameof(Code.Inc_rm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Eb_2, code[nameof(Code.Dec_rm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, invalid, invalid, invalid, @@ -861,114 +1083,114 @@ namespace Generator.Decoder { ("handlers_Grp_FF", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_4)], codeEnum[nameof(Code.Inc_rm16)], codeEnum[nameof(Code.Inc_rm32)], codeEnum[nameof(Code.Inc_rm64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_4)], codeEnum[nameof(Code.Dec_rm16)], codeEnum[nameof(Code.Dec_rm32)], codeEnum[nameof(Code.Dec_rm64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evj)], codeEnum[nameof(Code.Call_rm16)], codeEnum[nameof(Code.Call_rm32)], codeEnum[nameof(Code.Call_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ep)], codeEnum[nameof(Code.Call_m1616)], codeEnum[nameof(Code.Call_m1632)], codeEnum[nameof(Code.Call_m1664)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evj)], codeEnum[nameof(Code.Jmp_rm16)], codeEnum[nameof(Code.Jmp_rm32)], codeEnum[nameof(Code.Jmp_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ep)], codeEnum[nameof(Code.Jmp_m1616)], codeEnum[nameof(Code.Jmp_m1632)], codeEnum[nameof(Code.Jmp_m1664)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushEv)], codeEnum[nameof(Code.Push_rm16)], codeEnum[nameof(Code.Push_rm32)], codeEnum[nameof(Code.Push_rm64)] }, + new object[] { Ev_4, code[nameof(Code.Inc_rm16)], code[nameof(Code.Inc_rm32)], code[nameof(Code.Inc_rm64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_4, code[nameof(Code.Dec_rm16)], code[nameof(Code.Dec_rm32)], code[nameof(Code.Dec_rm64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Evj, code[nameof(Code.Call_rm16)], code[nameof(Code.Call_rm32)], code[nameof(Code.Call_rm64)] }, + new object[] { Ep, code[nameof(Code.Call_m1616)], code[nameof(Code.Call_m1632)], code[nameof(Code.Call_m1664)] }, + new object[] { Evj, code[nameof(Code.Jmp_rm16)], code[nameof(Code.Jmp_rm32)], code[nameof(Code.Jmp_rm64)] }, + new object[] { Ep, code[nameof(Code.Jmp_m1616)], code[nameof(Code.Jmp_m1632)], code[nameof(Code.Jmp_m1664)] }, + new object[] { PushEv, code[nameof(Code.Push_rm16)], code[nameof(Code.Push_rm32)], code[nameof(Code.Push_rm64)] }, invalid, }), ("handlers_Grp_0F00", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evw)], codeEnum[nameof(Code.Sldt_rm16)], codeEnum[nameof(Code.Sldt_r32m16)], codeEnum[nameof(Code.Sldt_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evw)], codeEnum[nameof(Code.Str_rm16)], codeEnum[nameof(Code.Str_r32m16)], codeEnum[nameof(Code.Str_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ew)], codeEnum[nameof(Code.Lldt_rm16)], codeEnum[nameof(Code.Lldt_r32m16)], codeEnum[nameof(Code.Lldt_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ew)], codeEnum[nameof(Code.Ltr_rm16)], codeEnum[nameof(Code.Ltr_r32m16)], codeEnum[nameof(Code.Ltr_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ew)], codeEnum[nameof(Code.Verr_rm16)], codeEnum[nameof(Code.Verr_r32m16)], codeEnum[nameof(Code.Verr_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ew)], codeEnum[nameof(Code.Verw_rm16)], codeEnum[nameof(Code.Verw_r32m16)], codeEnum[nameof(Code.Verw_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options_DontReadModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { Evw, code[nameof(Code.Sldt_rm16)], code[nameof(Code.Sldt_r32m16)], code[nameof(Code.Sldt_r64m16)] }, + new object[] { Evw, code[nameof(Code.Str_rm16)], code[nameof(Code.Str_r32m16)], code[nameof(Code.Str_r64m16)] }, + new object[] { Ew, code[nameof(Code.Lldt_rm16)], code[nameof(Code.Lldt_r32m16)], code[nameof(Code.Lldt_r64m16)] }, + new object[] { Ew, code[nameof(Code.Ltr_rm16)], code[nameof(Code.Ltr_r32m16)], code[nameof(Code.Ltr_r64m16)] }, + new object[] { Ew, code[nameof(Code.Verr_rm16)], code[nameof(Code.Verr_r32m16)], code[nameof(Code.Verr_r64m16)] }, + new object[] { Ew, code[nameof(Code.Verw_rm16)], code[nameof(Code.Verw_r32m16)], code[nameof(Code.Verw_r64m16)] }, + new object[] { Options_DontReadModRM, + new object[] { MandatoryPrefix, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evw)], codeEnum[nameof(Code.Lkgs_rm16)], codeEnum[nameof(Code.Lkgs_r32m16)], codeEnum[nameof(Code.Lkgs_r64m16)] }, + new object[] { Evw, code[nameof(Code.Lkgs_rm16)], code[nameof(Code.Lkgs_r32m16)], code[nameof(Code.Lkgs_r64m16)] }, }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_3b)], codeEnum[nameof(Code.Jmpe_rm16)], codeEnum[nameof(Code.Jmpe_rm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { Bitness_DontReadModRM, + new object[] { Ev_3b, code[nameof(Code.Jmpe_rm16)], code[nameof(Code.Jmpe_rm32)] }, + new object[] { MandatoryPrefix, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evw)], codeEnum[nameof(Code.Lkgs_rm16)], codeEnum[nameof(Code.Lkgs_r32m16)], codeEnum[nameof(Code.Lkgs_r64m16)] }, + new object[] { Evw, code[nameof(Code.Lkgs_rm16)], code[nameof(Code.Lkgs_r32m16)], code[nameof(Code.Lkgs_r64m16)] }, }, }, - }, decoderOptionsEnum[nameof(DecoderOptions.Jmpe)] + }, options[nameof(DecoderOptions.Jmpe)] }, invalid, }), ("handlers_Grp_0F01_lo", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ms)], codeEnum[nameof(Code.Sgdt_m1632_16)], codeEnum[nameof(Code.Sgdt_m1632)], codeEnum[nameof(Code.Sgdt_m1664)] }, + new object[] { Ms, code[nameof(Code.Sgdt_m1632_16)], code[nameof(Code.Sgdt_m1632)], code[nameof(Code.Sgdt_m1664)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ms)], codeEnum[nameof(Code.Sidt_m1632_16)], codeEnum[nameof(Code.Sidt_m1632)], codeEnum[nameof(Code.Sidt_m1664)] }, + new object[] { Ms, code[nameof(Code.Sidt_m1632_16)], code[nameof(Code.Sidt_m1632)], code[nameof(Code.Sidt_m1664)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ms)], codeEnum[nameof(Code.Lgdt_m1632_16)], codeEnum[nameof(Code.Lgdt_m1632)], codeEnum[nameof(Code.Lgdt_m1664)] }, + new object[] { Ms, code[nameof(Code.Lgdt_m1632_16)], code[nameof(Code.Lgdt_m1632)], code[nameof(Code.Lgdt_m1664)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ms)], codeEnum[nameof(Code.Lidt_m1632_16)], codeEnum[nameof(Code.Lidt_m1632)], codeEnum[nameof(Code.Lidt_m1664)] }, + new object[] { Ms, code[nameof(Code.Lidt_m1632_16)], code[nameof(Code.Lidt_m1632)], code[nameof(Code.Lidt_m1664)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evw)], codeEnum[nameof(Code.Smsw_rm16)], codeEnum[nameof(Code.Smsw_r32m16)], codeEnum[nameof(Code.Smsw_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { Evw, code[nameof(Code.Smsw_rm16)], code[nameof(Code.Smsw_r32m16)], code[nameof(Code.Smsw_r64m16)] }, + new object[] { MandatoryPrefix, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Rstorssp_m64)] }, + new object[] { M_1, code[nameof(Code.Rstorssp_m64)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Evw)], codeEnum[nameof(Code.Lmsw_rm16)], codeEnum[nameof(Code.Lmsw_r32m16)], codeEnum[nameof(Code.Lmsw_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Invlpg_m)] }, + new object[] { Evw, code[nameof(Code.Lmsw_rm16)], code[nameof(Code.Lmsw_r32m16)], code[nameof(Code.Lmsw_r64m16)] }, + new object[] { M_1, code[nameof(Code.Invlpg_m)] }, }), ("handlers_Grp_0F01_hi", new object?[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Enclv)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Enclv)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmcall)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Vmcall)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmlaunch)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Vmlaunch)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmresume)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Vmresume)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmxoff)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Vmxoff)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Pconfig)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Pconfig)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, @@ -977,124 +1199,124 @@ namespace Generator.Decoder { null, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Monitorw)], codeEnum[nameof(Code.Monitord)], codeEnum[nameof(Code.Monitorq)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple5, code[nameof(Code.Monitorw)], code[nameof(Code.Monitord)], code[nameof(Code.Monitorq)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Mwait)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Mwait)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Clac)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Clac)] }, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Eretu)] }, + new object[] { Simple, code[nameof(Code.Eretu)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Erets)] }, + new object[] { Simple, code[nameof(Code.Erets)] }, }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Stac)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Stac)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], + new object[] { MandatoryPrefix_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Tdcall)] }, + new object[] { Simple, code[nameof(Code.Tdcall)] }, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], + new object[] { MandatoryPrefix_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Seamret)] }, + new object[] { Simple, code[nameof(Code.Seamret)] }, }, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], + new object[] { MandatoryPrefix_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Seamops)] }, + new object[] { Simple, code[nameof(Code.Seamops)] }, }, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Encls)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Encls)] }, + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Seamcall)] }, + new object[] { Simple, code[nameof(Code.Seamcall)] }, }, invalid_NoModRM, invalid_NoModRM, }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Xgetbv)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Xgetbv)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Xsetbv)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Xsetbv)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, null, null, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmfunc)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Vmfunc)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Xend)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Xend)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Xtest)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Xtest)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Enclu)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Enclu)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Vmrunw)], codeEnum[nameof(Code.Vmrund)], codeEnum[nameof(Code.Vmrunq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmmcall)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmmcall)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmgexit)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Vmgexit_F2)] }, + new object[] { Simple5, code[nameof(Code.Vmrunw)], code[nameof(Code.Vmrund)], code[nameof(Code.Vmrunq)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Vmmcall)] }, + new object[] { Simple, code[nameof(Code.Vmmcall)] }, + new object[] { Simple, code[nameof(Code.Vmgexit)] }, + new object[] { Simple, code[nameof(Code.Vmgexit_F2)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Vmloadw)], codeEnum[nameof(Code.Vmloadd)], codeEnum[nameof(Code.Vmloadq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Vmsavew)], codeEnum[nameof(Code.Vmsaved)], codeEnum[nameof(Code.Vmsaveq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Stgi)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Clgi)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Skinit)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Invlpgaw)], codeEnum[nameof(Code.Invlpgad)], codeEnum[nameof(Code.Invlpgaq)] }, + new object[] { Simple5, code[nameof(Code.Vmloadw)], code[nameof(Code.Vmloadd)], code[nameof(Code.Vmloadq)] }, + new object[] { Simple5, code[nameof(Code.Vmsavew)], code[nameof(Code.Vmsaved)], code[nameof(Code.Vmsaveq)] }, + new object[] { Simple, code[nameof(Code.Stgi)] }, + new object[] { Simple, code[nameof(Code.Clgi)] }, + new object[] { Simple, code[nameof(Code.Skinit)] }, + new object[] { Simple5, code[nameof(Code.Invlpgaw)], code[nameof(Code.Invlpgad)], code[nameof(Code.Invlpgaq)] }, // E0 null, @@ -1107,58 +1329,58 @@ namespace Generator.Decoder { null, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Serialize)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Serialize)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Setssbsy)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Xsusldtrk)] }, + new object[] { Simple_ModRM, code[nameof(Code.Setssbsy)] }, + new object[] { Simple_ModRM, code[nameof(Code.Xsusldtrk)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Xresldtrk)] }, + new object[] { Simple_ModRM, code[nameof(Code.Xresldtrk)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Saveprevssp)] }, + new object[] { Simple_ModRM, code[nameof(Code.Saveprevssp)] }, invalid, }, null, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], + new object[] { MandatoryPrefix_NoModRM, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Uiret)] }, + new object[] { Simple, code[nameof(Code.Uiret)] }, }, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], + new object[] { MandatoryPrefix_NoModRM, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Testui)] }, + new object[] { Simple, code[nameof(Code.Testui)] }, }, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdpkru)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Rdpkru)] }, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Clui)] }, + new object[] { Simple, code[nameof(Code.Clui)] }, }, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Wrpkru)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Wrpkru)] }, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Stui)] }, + new object[] { Simple, code[nameof(Code.Stui)] }, }, invalid_NoModRM, }, @@ -1174,51 +1396,51 @@ namespace Generator.Decoder { null, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Swapgs)] }, + new object[] { Simple, code[nameof(Code.Swapgs)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdtscp)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Monitorxw)], codeEnum[nameof(Code.Monitorxd)], codeEnum[nameof(Code.Monitorxq)] }, + new object[] { Simple, code[nameof(Code.Rdtscp)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple5, code[nameof(Code.Monitorxw)], code[nameof(Code.Monitorxd)], code[nameof(Code.Monitorxq)] }, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Mcommit)] }, + new object[] { Simple, code[nameof(Code.Mcommit)] }, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Mwaitx)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Mwaitx)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Clzerow)], codeEnum[nameof(Code.Clzerod)], codeEnum[nameof(Code.Clzeroq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdpru)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Invlpgbw)], codeEnum[nameof(Code.Invlpgbd)], codeEnum[nameof(Code.Invlpgbq)] }, + new object[] { Simple5, code[nameof(Code.Clzerow)], code[nameof(Code.Clzerod)], code[nameof(Code.Clzeroq)] }, + new object[] { Simple, code[nameof(Code.Rdpru)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple5, code[nameof(Code.Invlpgbw)], code[nameof(Code.Invlpgbd)], code[nameof(Code.Invlpgbq)] }, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rmpadjust)] }, + new object[] { Simple, code[nameof(Code.Rmpadjust)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rmpupdate)] }, + new object[] { Simple, code[nameof(Code.Rmpupdate)] }, }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Tlbsync)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Tlbsync)] }, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { Bitness, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Psmash)] }, + new object[] { Simple, code[nameof(Code.Psmash)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Pvalidatew)], codeEnum[nameof(Code.Pvalidated)], codeEnum[nameof(Code.Pvalidateq)] }, + new object[] { Simple5, code[nameof(Code.Pvalidatew)], code[nameof(Code.Pvalidated)], code[nameof(Code.Pvalidateq)] }, }, }), ("handlers_Grp_0F36_Cyrix", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW_1a)], codeEnum[nameof(Code.Rdshr_rm32)], 0x03 }, + new object[] { Ev_REXW_1a, code[nameof(Code.Rdshr_rm32)], 0x03 }, invalid, invalid, invalid, @@ -1230,7 +1452,7 @@ namespace Generator.Decoder { ("handlers_Grp_0F37_Cyrix", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW_1a)], codeEnum[nameof(Code.Wrshr_rm32)], 0x03 }, + new object[] { Ev_REXW_1a, code[nameof(Code.Wrshr_rm32)], 0x03 }, invalid, invalid, invalid, @@ -1242,9 +1464,9 @@ namespace Generator.Decoder { ("handlers_Grp_0F7A_Cyrix", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW_1a)], codeEnum[nameof(Code.Svldt_m80)], 0x02 }, + new object[] { Ev_REXW_1a, code[nameof(Code.Svldt_m80)], 0x02 }, }, invalid, invalid, @@ -1257,9 +1479,9 @@ namespace Generator.Decoder { ("handlers_Grp_0F7B_Cyrix", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW_1a)], codeEnum[nameof(Code.Rsldt_m80)], 0x02 }, + new object[] { Ev_REXW_1a, code[nameof(Code.Rsldt_m80)], 0x02 }, }, invalid, invalid, @@ -1272,9 +1494,9 @@ namespace Generator.Decoder { ("handlers_Grp_0F7C_Cyrix", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW_1a)], codeEnum[nameof(Code.Svts_m80)], 0x02 }, + new object[] { Ev_REXW_1a, code[nameof(Code.Svts_m80)], 0x02 }, }, invalid, invalid, @@ -1287,9 +1509,9 @@ namespace Generator.Decoder { ("handlers_Grp_0F7D_Cyrix", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW_1a)], codeEnum[nameof(Code.Rsts_m80)], 0x02 }, + new object[] { Ev_REXW_1a, code[nameof(Code.Rsts_m80)], 0x02 }, }, invalid, invalid, @@ -1315,10 +1537,10 @@ namespace Generator.Decoder { ("handlers_Grp_0FA6_hi", new object?[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Montmul_16)], codeEnum[nameof(Code.Montmul_32)], codeEnum[nameof(Code.Montmul_64)] }, + new object[] { Simple5, code[nameof(Code.Montmul_16)], code[nameof(Code.Montmul_32)], code[nameof(Code.Montmul_64)] }, invalid_NoModRM, 0x00, }, @@ -1331,10 +1553,10 @@ namespace Generator.Decoder { null, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xsha1_16)], codeEnum[nameof(Code.Xsha1_32)], codeEnum[nameof(Code.Xsha1_64)] }, + new object[] { Simple5, code[nameof(Code.Xsha1_16)], code[nameof(Code.Xsha1_32)], code[nameof(Code.Xsha1_64)] }, invalid_NoModRM, 0x00, }, @@ -1347,10 +1569,10 @@ namespace Generator.Decoder { null, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xsha256_16)], codeEnum[nameof(Code.Xsha256_32)], codeEnum[nameof(Code.Xsha256_64)] }, + new object[] { Simple5, code[nameof(Code.Xsha256_16)], code[nameof(Code.Xsha256_32)], code[nameof(Code.Xsha256_64)] }, invalid_NoModRM, 0x00, }, @@ -1383,10 +1605,10 @@ namespace Generator.Decoder { null, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Ccs_hash_16)], codeEnum[nameof(Code.Ccs_hash_32)], codeEnum[nameof(Code.Ccs_hash_64)] }, + new object[] { Simple5, code[nameof(Code.Ccs_hash_16)], code[nameof(Code.Ccs_hash_32)], code[nameof(Code.Ccs_hash_64)] }, invalid_NoModRM, 0x00, }, @@ -1434,7 +1656,7 @@ namespace Generator.Decoder { ("handlers_Grp_0FA7_hi", new object?[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xstore_16)], codeEnum[nameof(Code.Xstore_32)], codeEnum[nameof(Code.Xstore_64)] }, + new object[] { Simple5, code[nameof(Code.Xstore_16)], code[nameof(Code.Xstore_32)], code[nameof(Code.Xstore_64)] }, null, null, null, @@ -1444,10 +1666,10 @@ namespace Generator.Decoder { null, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xcryptecb_16)], codeEnum[nameof(Code.Xcryptecb_32)], codeEnum[nameof(Code.Xcryptecb_64)] }, + new object[] { Simple5, code[nameof(Code.Xcryptecb_16)], code[nameof(Code.Xcryptecb_32)], code[nameof(Code.Xcryptecb_64)] }, invalid_NoModRM, 0x00, }, @@ -1460,10 +1682,10 @@ namespace Generator.Decoder { null, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xcryptcbc_16)], codeEnum[nameof(Code.Xcryptcbc_32)], codeEnum[nameof(Code.Xcryptcbc_64)] }, + new object[] { Simple5, code[nameof(Code.Xcryptcbc_16)], code[nameof(Code.Xcryptcbc_32)], code[nameof(Code.Xcryptcbc_64)] }, invalid_NoModRM, 0x00, }, @@ -1476,10 +1698,10 @@ namespace Generator.Decoder { null, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xcryptctr_16)], codeEnum[nameof(Code.Xcryptctr_32)], codeEnum[nameof(Code.Xcryptctr_64)] }, + new object[] { Simple5, code[nameof(Code.Xcryptctr_16)], code[nameof(Code.Xcryptctr_32)], code[nameof(Code.Xcryptctr_64)] }, invalid_NoModRM, 0x00, }, @@ -1492,10 +1714,10 @@ namespace Generator.Decoder { null, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xcryptcfb_16)], codeEnum[nameof(Code.Xcryptcfb_32)], codeEnum[nameof(Code.Xcryptcfb_64)] }, + new object[] { Simple5, code[nameof(Code.Xcryptcfb_16)], code[nameof(Code.Xcryptcfb_32)], code[nameof(Code.Xcryptcfb_64)] }, invalid_NoModRM, 0x00, }, @@ -1508,10 +1730,10 @@ namespace Generator.Decoder { null, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Xcryptofb_16)], codeEnum[nameof(Code.Xcryptofb_32)], codeEnum[nameof(Code.Xcryptofb_64)] }, + new object[] { Simple5, code[nameof(Code.Xcryptofb_16)], code[nameof(Code.Xcryptofb_32)], code[nameof(Code.Xcryptofb_64)] }, invalid_NoModRM, 0x00, }, @@ -1524,10 +1746,10 @@ namespace Generator.Decoder { null, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { MandatoryPrefix4, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5)], codeEnum[nameof(Code.Ccs_encrypt_16)], codeEnum[nameof(Code.Ccs_encrypt_32)], codeEnum[nameof(Code.Ccs_encrypt_64)] }, + new object[] { Simple5, code[nameof(Code.Ccs_encrypt_16)], code[nameof(Code.Ccs_encrypt_32)], code[nameof(Code.Ccs_encrypt_64)] }, invalid_NoModRM, 0x00, }, @@ -1556,68 +1778,68 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_3)], codeEnum[nameof(Code.Bt_rm16_imm8)], codeEnum[nameof(Code.Bt_rm32_imm8)], codeEnum[nameof(Code.Bt_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_4)], codeEnum[nameof(Code.Bts_rm16_imm8)], codeEnum[nameof(Code.Bts_rm32_imm8)], codeEnum[nameof(Code.Bts_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_4)], codeEnum[nameof(Code.Btr_rm16_imm8)], codeEnum[nameof(Code.Btr_rm32_imm8)], codeEnum[nameof(Code.Btr_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Ib2_4)], codeEnum[nameof(Code.Btc_rm16_imm8)], codeEnum[nameof(Code.Btc_rm32_imm8)], codeEnum[nameof(Code.Btc_rm64_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib2_3, code[nameof(Code.Bt_rm16_imm8)], code[nameof(Code.Bt_rm32_imm8)], code[nameof(Code.Bt_rm64_imm8)] }, + new object[] { Ev_Ib2_4, code[nameof(Code.Bts_rm16_imm8)], code[nameof(Code.Bts_rm32_imm8)], code[nameof(Code.Bts_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib2_4, code[nameof(Code.Btr_rm16_imm8)], code[nameof(Code.Btr_rm32_imm8)], code[nameof(Code.Btr_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Ib2_4, code[nameof(Code.Btc_rm16_imm8)], code[nameof(Code.Btc_rm32_imm8)], code[nameof(Code.Btc_rm64_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, }), ("handlers_Grp_0FC7", new object[8] { invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_REXW_4)], codeEnum[nameof(Code.Cmpxchg8b_m64)], codeEnum[nameof(Code.Cmpxchg16b_m128)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)), handlerFlagsEnum[nameof(HandlerFlags.Lock)] }, + new object[] { M_REXW_4, code[nameof(Code.Cmpxchg8b_m64)], code[nameof(Code.Cmpxchg16b_m128)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)), handlerFlags[nameof(HandlerFlags.Lock)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_REXW_2)], codeEnum[nameof(Code.Xrstors_mem)], codeEnum[nameof(Code.Xrstors64_mem)] }, + new object[] { MandatoryPrefix, + new object[] { M_REXW_2, code[nameof(Code.Xrstors_mem)], code[nameof(Code.Xrstors64_mem)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_REXW_2)], codeEnum[nameof(Code.Xsavec_mem)], codeEnum[nameof(Code.Xsavec64_mem)] }, + new object[] { MandatoryPrefix, + new object[] { M_REXW_2, code[nameof(Code.Xsavec_mem)], code[nameof(Code.Xsavec64_mem)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { MandatoryPrefix, + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Xsaves_mem)], codeEnum[nameof(Code.Xsaves64_mem)], 0x02 }, + new object[] { Ev_REXW, code[nameof(Code.Xsaves_mem)], code[nameof(Code.Xsaves64_mem)], 0x02 }, }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Rv)], codeEnum[nameof(Code.Rdrand_r16)], codeEnum[nameof(Code.Rdrand_r32)], codeEnum[nameof(Code.Rdrand_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Vmptrld_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Rv)], codeEnum[nameof(Code.Rdrand_r16)], codeEnum[nameof(Code.Rdrand_r32)], codeEnum[nameof(Code.Rdrand_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Vmclear_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { MandatoryPrefix3, + new object[] { Rv, code[nameof(Code.Rdrand_r16)], code[nameof(Code.Rdrand_r32)], code[nameof(Code.Rdrand_r64)] }, + new object[] { M_1, code[nameof(Code.Vmptrld_m64)] }, + new object[] { Rv, code[nameof(Code.Rdrand_r16)], code[nameof(Code.Rdrand_r32)], code[nameof(Code.Rdrand_r64)] }, + new object[] { M_1, code[nameof(Code.Vmclear_m64)] }, + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Rq)], codeEnum[nameof(Code.Senduipi_r64)] }, + new object[] { Rq, code[nameof(Code.Senduipi_r64)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Vmxon_m64)] }, + new object[] { M_1, code[nameof(Code.Vmxon_m64)] }, invalid, invalid, - new OrEnumValue(legacyHandlerFlagsEnum, nameof(LegacyHandlerFlags.HandlerReg), nameof(LegacyHandlerFlags.Handler66Reg)) + new OrEnumValue(legacyHandlerFlags, nameof(LegacyHandlerFlags.HandlerReg), nameof(LegacyHandlerFlags.Handler66Reg)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Rv)], codeEnum[nameof(Code.Rdseed_r16)], codeEnum[nameof(Code.Rdseed_r32)], codeEnum[nameof(Code.Rdseed_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Vmptrst_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Rv)], codeEnum[nameof(Code.Rdseed_r16)], codeEnum[nameof(Code.Rdseed_r32)], codeEnum[nameof(Code.Rdseed_r64)] }, + new object[] { MandatoryPrefix3, + new object[] { Rv, code[nameof(Code.Rdseed_r16)], code[nameof(Code.Rdseed_r32)], code[nameof(Code.Rdseed_r64)] }, + new object[] { M_1, code[nameof(Code.Vmptrst_m64)] }, + new object[] { Rv, code[nameof(Code.Rdseed_r16)], code[nameof(Code.Rdseed_r32)], code[nameof(Code.Rdseed_r64)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Rv_32_64)], codeEnum[nameof(Code.Rdpid_r32)], codeEnum[nameof(Code.Rdpid_r64)] }, + new object[] { Rv_32_64, code[nameof(Code.Rdpid_r32)], code[nameof(Code.Rdpid_r64)] }, invalid, invalid, invalid, - new OrEnumValue(legacyHandlerFlagsEnum, nameof(LegacyHandlerFlags.HandlerReg), nameof(LegacyHandlerFlags.Handler66Reg)) + new OrEnumValue(legacyHandlerFlags, nameof(LegacyHandlerFlags.HandlerReg), nameof(LegacyHandlerFlags.Handler66Reg)) }, }), ("handlers_Grp_C6_lo", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Ib_2)], codeEnum[nameof(Code.Mov_rm8_imm8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, + new object[] { Eb_Ib_2, code[nameof(Code.Mov_rm8_imm8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, invalid, invalid, invalid, @@ -1700,7 +1922,7 @@ namespace Generator.Decoder { null, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ib3)], codeEnum[nameof(Code.Xabort_imm8)] }, + new object[] { Ib3, code[nameof(Code.Xabort_imm8)] }, null, null, null, @@ -1712,7 +1934,7 @@ namespace Generator.Decoder { ("handlers_Grp_C7_lo", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Iz_4)], codeEnum[nameof(Code.Mov_rm16_imm16)], codeEnum[nameof(Code.Mov_rm32_imm32)], codeEnum[nameof(Code.Mov_rm64_imm32)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, + new object[] { Ev_Iz_4, code[nameof(Code.Mov_rm16_imm16)], code[nameof(Code.Mov_rm32_imm32)], code[nameof(Code.Mov_rm64_imm32)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, invalid, invalid, invalid, @@ -1795,7 +2017,7 @@ namespace Generator.Decoder { null, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jx)], codeEnum[nameof(Code.Xbegin_rel16)], codeEnum[nameof(Code.Xbegin_rel32)], codeEnum[nameof(Code.Xbegin_rel32)] }, + new object[] { Jx, code[nameof(Code.Xbegin_rel16)], code[nameof(Code.Xbegin_rel32)], code[nameof(Code.Xbegin_rel32)] }, null, null, null, @@ -1809,23 +2031,23 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psrlw_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrlw_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psrlw_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psrlw_xmm_imm8)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psraw_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psraw_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psraw_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psraw_xmm_imm8)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psllw_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psllw_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psllw_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psllw_xmm_imm8)] }, invalid, invalid, }, @@ -1836,23 +2058,23 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psrld_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrld_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psrld_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psrld_xmm_imm8)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psrad_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrad_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psrad_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psrad_xmm_imm8)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Pslld_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pslld_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Pslld_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Pslld_xmm_imm8)] }, invalid, invalid, }, @@ -1863,29 +2085,29 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psrlq_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrlq_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psrlq_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psrlq_xmm_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrldq_xmm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psrldq_xmm_imm8)] }, invalid, invalid, }, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.NIb)], codeEnum[nameof(Code.Psllq_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psllq_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { NIb, code[nameof(Code.Psllq_mm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Psllq_xmm_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pslldq_xmm_imm8)] }, + new object[] { RIb, xmm0, code[nameof(Code.Pslldq_xmm_imm8)] }, invalid, invalid, }, @@ -1893,75 +2115,75 @@ namespace Generator.Decoder { ("handlers_Grp_0FAE_lo", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_2)], codeEnum[nameof(Code.Fxsave_m512byte)], codeEnum[nameof(Code.Fxsave64_m512byte)] }, + new object[] { MandatoryPrefix, + new object[] { M_2, code[nameof(Code.Fxsave_m512byte)], code[nameof(Code.Fxsave64_m512byte)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Rdfsbase_r32)], codeEnum[nameof(Code.Rdfsbase_r64)], 0x01 }, + new object[] { RM, + new object[] { Ev_REXW, code[nameof(Code.Rdfsbase_r32)], code[nameof(Code.Rdfsbase_r64)], 0x01 }, invalid, }, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_2)], codeEnum[nameof(Code.Fxrstor_m512byte)], codeEnum[nameof(Code.Fxrstor64_m512byte)] }, + new object[] { MandatoryPrefix, + new object[] { M_2, code[nameof(Code.Fxrstor_m512byte)], code[nameof(Code.Fxrstor64_m512byte)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Rdgsbase_r32)], codeEnum[nameof(Code.Rdgsbase_r64)], 0x01 }, + new object[] { RM, + new object[] { Ev_REXW, code[nameof(Code.Rdgsbase_r32)], code[nameof(Code.Rdgsbase_r64)], 0x01 }, invalid, }, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Ldmxcsr_m32)] }, + new object[] { MandatoryPrefix, + new object[] { M_1, code[nameof(Code.Ldmxcsr_m32)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Wrfsbase_r32)], codeEnum[nameof(Code.Wrfsbase_r64)], 0x01 }, + new object[] { RM, + new object[] { Ev_REXW, code[nameof(Code.Wrfsbase_r32)], code[nameof(Code.Wrfsbase_r64)], 0x01 }, invalid, }, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Stmxcsr_m32)] }, + new object[] { MandatoryPrefix, + new object[] { M_1, code[nameof(Code.Stmxcsr_m32)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness_DontReadModRM)], + new object[] { Bitness_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Wrgsbase_r32)], codeEnum[nameof(Code.Wrgsbase_r64)], 0x01 }, + new object[] { RM, + new object[] { Ev_REXW, code[nameof(Code.Wrgsbase_r32)], code[nameof(Code.Wrgsbase_r64)], 0x01 }, invalid, }, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_2)], codeEnum[nameof(Code.Xsave_mem)], codeEnum[nameof(Code.Xsave64_mem)] }, + new object[] { MandatoryPrefix, + new object[] { M_2, code[nameof(Code.Xsave_mem)], code[nameof(Code.Xsave64_mem)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Ptwrite_rm32)], codeEnum[nameof(Code.Ptwrite_rm64)], 0x07 }, + new object[] { Ev_REXW, code[nameof(Code.Ptwrite_rm32)], code[nameof(Code.Ptwrite_rm64)], 0x07 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_2)], codeEnum[nameof(Code.Xrstor_mem)], codeEnum[nameof(Code.Xrstor64_mem)] }, + new object[] { MandatoryPrefix, + new object[] { M_2, code[nameof(Code.Xrstor_mem)], code[nameof(Code.Xrstor64_mem)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_2)], codeEnum[nameof(Code.Xsaveopt_mem)], codeEnum[nameof(Code.Xsaveopt64_mem)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Clwb_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Clrssbsy_m64)] }, + new object[] { MandatoryPrefix, + new object[] { M_2, code[nameof(Code.Xsaveopt_mem)], code[nameof(Code.Xsaveopt64_mem)] }, + new object[] { M_1, code[nameof(Code.Clwb_m8)] }, + new object[] { M_1, code[nameof(Code.Clrssbsy_m64)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Clflush_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Clflushopt_m8)] }, + new object[] { MandatoryPrefix, + new object[] { M_1, code[nameof(Code.Clflush_m8)] }, + new object[] { M_1, code[nameof(Code.Clflushopt_m8)] }, invalid, invalid, }, @@ -2020,208 +2242,208 @@ namespace Generator.Decoder { null, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_E9)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_E9)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_EA)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_EA)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_EB)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_EB)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_EC)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_EC)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_ED)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_ED)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_EE)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_EE)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Lfence_EF)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Lfence_EF)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Incsspd_r32)], codeEnum[nameof(Code.Incsspq_r64)], 0x01 }, + new object[] { Ev_REXW, code[nameof(Code.Incsspd_r32)], code[nameof(Code.Incsspq_r64)], 0x01 }, invalid, }, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F1)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F2)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F2)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F3)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F3)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F4)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F4)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F5)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F5)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F6)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F6)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Mfence_F7)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Tpause_r32)], codeEnum[nameof(Code.Tpause_r64)], 0x01 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple5_ModRM_as)], codeEnum[nameof(Code.Umonitor_r16)], codeEnum[nameof(Code.Umonitor_r32)], codeEnum[nameof(Code.Umonitor_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Umwait_r32)], codeEnum[nameof(Code.Umwait_r64)], 0x01 } + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Mfence_F7)] }, + new object[] { Ev_REXW, code[nameof(Code.Tpause_r32)], code[nameof(Code.Tpause_r64)], 0x01 }, + new object[] { Simple5_ModRM_as, code[nameof(Code.Umonitor_r16)], code[nameof(Code.Umonitor_r32)], code[nameof(Code.Umonitor_r64)] }, + new object[] { Ev_REXW, code[nameof(Code.Umwait_r32)], code[nameof(Code.Umwait_r64)], 0x01 } }, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options_DontReadModRM)], + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence)] }, + new object[] { Options_DontReadModRM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Pcommit)] }, decoderOptionsEnum[nameof(DecoderOptions.Pcommit)] + new object[] { Simple_ModRM, code[nameof(Code.Pcommit)] }, options[nameof(DecoderOptions.Pcommit)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_F9)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_F9)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_FA)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_FA)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_FB)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_FB)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_FC)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_FC)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_FD)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_FD)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_FE)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_FE)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Sfence_FF)] }, + new object[] { MandatoryPrefix, + new object[] { Simple_ModRM, code[nameof(Code.Sfence_FF)] }, invalid, invalid, invalid, }, }), - ("reservedNop_0F0D", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F0D)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F0D)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F0D)] }), - ("reservedNop_0F18", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F18)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F18)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F18)] }), - ("reservedNop_0F19", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F19)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F19)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F19)] }), - ("reservedNop_0F1A", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F1A)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F1A)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F1A)] }), - ("reservedNop_0F1B", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F1B)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F1B)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F1B)] }), - ("reservedNop_0F1C", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F1C)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F1C)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F1C)] }), - ("reservedNop_0F1D", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F1D)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F1D)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F1D)] }), - ("reservedNop_0F1E", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F1E)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F1E)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F1E)] }), - ("reservedNop_0F1F", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Reservednop_rm16_r16_0F1F)], codeEnum[nameof(Code.Reservednop_rm32_r32_0F1F)], codeEnum[nameof(Code.Reservednop_rm64_r64_0F1F)] }), + ("reservedNop_0F0D", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F0D)], code[nameof(Code.Reservednop_rm32_r32_0F0D)], code[nameof(Code.Reservednop_rm64_r64_0F0D)] }), + ("reservedNop_0F18", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F18)], code[nameof(Code.Reservednop_rm32_r32_0F18)], code[nameof(Code.Reservednop_rm64_r64_0F18)] }), + ("reservedNop_0F19", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F19)], code[nameof(Code.Reservednop_rm32_r32_0F19)], code[nameof(Code.Reservednop_rm64_r64_0F19)] }), + ("reservedNop_0F1A", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F1A)], code[nameof(Code.Reservednop_rm32_r32_0F1A)], code[nameof(Code.Reservednop_rm64_r64_0F1A)] }), + ("reservedNop_0F1B", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F1B)], code[nameof(Code.Reservednop_rm32_r32_0F1B)], code[nameof(Code.Reservednop_rm64_r64_0F1B)] }), + ("reservedNop_0F1C", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F1C)], code[nameof(Code.Reservednop_rm32_r32_0F1C)], code[nameof(Code.Reservednop_rm64_r64_0F1C)] }), + ("reservedNop_0F1D", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F1D)], code[nameof(Code.Reservednop_rm32_r32_0F1D)], code[nameof(Code.Reservednop_rm64_r64_0F1D)] }), + ("reservedNop_0F1E", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F1E)], code[nameof(Code.Reservednop_rm32_r32_0F1E)], code[nameof(Code.Reservednop_rm64_r64_0F1E)] }), + ("reservedNop_0F1F", new object[] { Ev_Gv_3a, code[nameof(Code.Reservednop_rm16_r16_0F1F)], code[nameof(Code.Reservednop_rm32_r32_0F1F)], code[nameof(Code.Reservednop_rm64_r64_0F1F)] }), ("handlers_Grp_0F0D_mem", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetch_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchw_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchwt1_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchreserved3_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchreserved4_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchreserved5_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchreserved6_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchreserved7_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetch_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchw_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchwt1_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchreserved3_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchreserved4_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchreserved5_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchreserved6_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchreserved7_m8)] }, }), - ("grp0F0D", new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + ("grp0F0D", new object[] { RM, "reservedNop_0F0D", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F0D_mem" } + new object[] { Group, "handlers_Grp_0F0D_mem" } }), ("handlers_Grp_0F18_mem", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetchnta_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetcht0_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetcht1_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Prefetcht2_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetchnta_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetcht0_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetcht1_m8)] }, + new object[] { M_1, code[nameof(Code.Prefetcht2_m8)] }, "reservedNop_0F18", "reservedNop_0F18", "reservedNop_0F18", "reservedNop_0F18", }), - ("grp0F18", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + ("grp0F18", new object[] { Reservednop, "reservedNop_0F18", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, "reservedNop_0F18", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F18_mem" } + new object[] { Group, "handlers_Grp_0F18_mem" } } }), ("handlers_Grp_0F1C_mem", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Cldemote_m8)] }, + new object[] { MandatoryPrefix4, + new object[] { M_1, code[nameof(Code.Cldemote_m8)] }, "reservedNop_0F1C", "reservedNop_0F1C", "reservedNop_0F1C", @@ -2235,11 +2457,11 @@ namespace Generator.Decoder { "reservedNop_0F1C", "reservedNop_0F1C", }), - ("grp0F1C", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + ("grp0F1C", new object[] { Reservednop, "reservedNop_0F1C", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, "reservedNop_0F1C", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F1C_mem" } + new object[] { Group, "handlers_Grp_0F1C_mem" } } }), @@ -2254,11 +2476,11 @@ namespace Generator.Decoder { "reservedNop_0F1E", "reservedNop_0F1E", }), - ("grp0F1E_1", new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + ("grp0F1E_1", new object[] { MandatoryPrefix, "reservedNop_0F1E", "reservedNop_0F1E", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_REXW)], codeEnum[nameof(Code.Rdsspd_r32)], codeEnum[nameof(Code.Rdsspq_r64)], 0x01 }, + new object[] { RM, + new object[] { Ev_REXW, code[nameof(Code.Rdsspd_r32)], code[nameof(Code.Rdsspq_r64)], 0x01 }, "reservedNop_0F1E" }, "reservedNop_0F1E" @@ -2338,16 +2560,16 @@ namespace Generator.Decoder { // F8 null, null, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, "reservedNop_0F1E", "reservedNop_0F1E", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Endbr64)] }, + new object[] { Simple_ModRM, code[nameof(Code.Endbr64)] }, "reservedNop_0F1E", }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, "reservedNop_0F1E", "reservedNop_0F1E", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple_ModRM)], codeEnum[nameof(Code.Endbr32)] }, + new object[] { Simple_ModRM, code[nameof(Code.Endbr32)] }, "reservedNop_0F1E", }, null, @@ -2355,17 +2577,17 @@ namespace Generator.Decoder { null, null, }), - ("grp0F1E", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + ("grp0F1E", new object[] { Reservednop, "reservedNop_0F1E", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0F1E_reg_lo", "handlers_Grp_0F1E_reg_hi" }, + new object[] { RM, + new object[] { Group8x64, "handlers_Grp_0F1E_reg_lo", "handlers_Grp_0F1E_reg_hi" }, "reservedNop_0F1E" } }), ("handlers_Grp_0F1F", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_3a)], codeEnum[nameof(Code.Nop_rm16)], codeEnum[nameof(Code.Nop_rm32)], codeEnum[nameof(Code.Nop_rm64)] }, + new object[] { Ev_3a, code[nameof(Code.Nop_rm16)], code[nameof(Code.Nop_rm32)], code[nameof(Code.Nop_rm64)] }, "reservedNop_0F1F", "reservedNop_0F1F", "reservedNop_0F1F", @@ -2374,14 +2596,14 @@ namespace Generator.Decoder { "reservedNop_0F1F", "reservedNop_0F1F", }), - ("grp0F1F", new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + ("grp0F1F", new object[] { Reservednop, "reservedNop_0F1F", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F1F" } + new object[] { Group, "handlers_Grp_0F1F" } }), ("handlers_Grp_660F78", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RIbIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Extrq_xmm_imm8_imm8)] }, + new object[] { RIbIb, xmm0, code[nameof(Code.Extrq_xmm_imm8_imm8)] }, invalid, invalid, invalid, @@ -2393,21 +2615,21 @@ namespace Generator.Decoder { ("handlers_Grp_F30F38D8", new object[8] { - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Aesencwide128kl_m384)] }, + new object[] { M_1, code[nameof(Code.Aesencwide128kl_m384)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Aesdecwide128kl_m384)] }, + new object[] { M_1, code[nameof(Code.Aesdecwide128kl_m384)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Aesencwide256kl_m512)] }, + new object[] { M_1, code[nameof(Code.Aesencwide256kl_m512)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_1)], codeEnum[nameof(Code.Aesdecwide256kl_m512)] }, + new object[] { M_1, code[nameof(Code.Aesdecwide256kl_m512)] }, }, invalid, invalid, @@ -2430,10 +2652,10 @@ namespace Generator.Decoder { ("handlers_Grp_0F3AF0_hi", new object?[0x40] { // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], + new object[] { MandatoryPrefix_NoModRM, invalid_NoModRM, invalid_NoModRM, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ib)], codeEnum[nameof(Code.Hreset_imm8)] }, + new object[] { Ib, code[nameof(Code.Hreset_imm8)] }, invalid_NoModRM, }, null, @@ -2518,77 +2740,77 @@ namespace Generator.Decoder { ("Handlers_0F38", new object[0x100] { // 00 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pshufb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pshufb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pshufb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pshufb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Phaddw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phaddw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Phaddw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phaddw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Phaddd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phaddd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Phaddd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phaddd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Phaddsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phaddsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Phaddsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phaddsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmaddubsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaddubsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmaddubsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaddubsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Phsubw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phsubw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Phsubw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phsubw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Phsubd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phsubd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Phsubd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phsubd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Phsubsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phsubsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Phsubsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phsubsw_xmm_xmmm128)] }, invalid, invalid, }, // 08 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psignb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psignb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psignb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psignb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psignw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psignw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psignw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psignw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psignd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psignd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psignd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psignd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmulhrsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmulhrsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmulhrsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmulhrsw_xmm_xmmm128)] }, invalid, invalid, }, @@ -2598,31 +2820,31 @@ namespace Generator.Decoder { invalid, // 10 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pblendvb_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pblendvb_xmm_xmmm128)] }, invalid, invalid, }, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Blendvps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Blendvps_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Blendvpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Blendvpd_xmm_xmmm128)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Ptest_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Ptest_xmm_xmmm128)] }, invalid, invalid, }, @@ -2632,60 +2854,60 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pabsb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pabsb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pabsb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pabsb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pabsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pabsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pabsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pabsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pabsd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pabsd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pabsd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pabsd_xmm_xmmm128)] }, invalid, invalid, }, invalid, // 20 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovsxbw_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovsxbw_xmm_xmmm64)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovsxbd_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovsxbd_xmm_xmmm32)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovsxbq_xmm_xmmm16)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovsxbq_xmm_xmmm16)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovsxwd_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovsxwd_xmm_xmmm64)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovsxwq_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovsxwq_xmm_xmmm32)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovsxdq_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovsxdq_xmm_xmmm64)] }, invalid, invalid, }, @@ -2693,27 +2915,27 @@ namespace Generator.Decoder { invalid, // 28 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmuldq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmuldq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpeqq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpeqq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movntdqa_xmm_m128)] }, + new object[] { VM, xmm0, code[nameof(Code.Movntdqa_xmm_m128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Packusdw_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Packusdw_xmm_xmmm128)] }, invalid, invalid, }, @@ -2723,110 +2945,110 @@ namespace Generator.Decoder { invalid, // 30 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovzxbw_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovzxbw_xmm_xmmm64)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovzxbd_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovzxbd_xmm_xmmm32)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovzxbq_xmm_xmmm16)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovzxbq_xmm_xmmm16)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovzxwd_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovzxwd_xmm_xmmm64)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovzxwq_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovzxwq_xmm_xmmm32)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovzxdq_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmovzxdq_xmm_xmmm64)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpgtq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpgtq_xmm_xmmm128)] }, invalid, invalid, }, // 38 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pminsb_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pminsb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pminsd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pminsd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pminuw_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pminuw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pminud_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pminud_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaxsb_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaxsb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaxsd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaxsd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaxuw_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaxuw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaxud_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaxud_xmm_xmmm128)] }, invalid, invalid, }, // 40 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmulld_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmulld_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Phminposuw_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Phminposuw_xmm_xmmm128)] }, invalid, invalid, }, @@ -2908,29 +3130,29 @@ namespace Generator.Decoder { invalid, // 80 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_32_64)], codeEnum[nameof(Code.Invept_r32_m128)], codeEnum[nameof(Code.Invept_r64_m128)], false, true }, + new object[] { Gv_Ev_32_64, code[nameof(Code.Invept_r32_m128)], code[nameof(Code.Invept_r64_m128)], false, true }, }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_32_64)], codeEnum[nameof(Code.Invvpid_r32_m128)], codeEnum[nameof(Code.Invvpid_r64_m128)], false, true }, + new object[] { Gv_Ev_32_64, code[nameof(Code.Invvpid_r32_m128)], code[nameof(Code.Invvpid_r64_m128)], false, true }, }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_32_64)], codeEnum[nameof(Code.Invpcid_r32_m128)], codeEnum[nameof(Code.Invpcid_r64_m128)], false, true }, + new object[] { Gv_Ev_32_64, code[nameof(Code.Invpcid_r32_m128)], code[nameof(Code.Invpcid_r64_m128)], false, true }, }, invalid, invalid, @@ -3022,46 +3244,46 @@ namespace Generator.Decoder { invalid, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha1nexte_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sha1nexte_xmm_xmmm128)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha1msg1_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sha1msg1_xmm_xmmm128)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha1msg2_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sha1msg2_xmm_xmmm128)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha256rnds2_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sha256rnds2_xmm_xmmm128)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha256msg1_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sha256msg1_xmm_xmmm128)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha256msg2_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sha256msg2_xmm_xmmm128)] }, invalid, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Gf2p8mulb_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Gf2p8mulb_xmm_xmmm128)] }, invalid, invalid, }, @@ -3077,50 +3299,50 @@ namespace Generator.Decoder { invalid, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_F30F38D8" }, + new object[] { Group, "handlers_Grp_F30F38D8" }, invalid, }, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesimc_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Aesimc_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesenc_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Loadiwkey_xmm_xmm)], codeEnum[nameof(Code.Aesenc128kl_xmm_m384)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Aesenc_xmm_xmmm128)] }, + new object[] { VW_3, xmm0, code[nameof(Code.Loadiwkey_xmm_xmm)], code[nameof(Code.Aesenc128kl_xmm_m384)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesenclast_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { VW_2, xmm0, code[nameof(Code.Aesenclast_xmm_xmmm128)] }, + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesdec128kl_xmm_m384)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Aesdec128kl_xmm_m384)] }, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesdec_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { VW_2, xmm0, code[nameof(Code.Aesdec_xmm_xmmm128)] }, + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesenc256kl_xmm_m512)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Aesenc256kl_xmm_m512)] }, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesdeclast_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { VW_2, xmm0, code[nameof(Code.Aesdeclast_xmm_xmmm128)] }, + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aesdec256kl_xmm_m512)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Aesdec256kl_xmm_m512)] }, }, invalid, }, @@ -3146,73 +3368,73 @@ namespace Generator.Decoder { invalid, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mv)], codeEnum[nameof(Code.Movbe_r16_m16)], codeEnum[nameof(Code.Movbe_r32_m32)], codeEnum[nameof(Code.Movbe_r64_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mv)], codeEnum[nameof(Code.Movbe_r16_m16)], codeEnum[nameof(Code.Movbe_r32_m32)], codeEnum[nameof(Code.Movbe_r64_m64)] }, + new object[] { MandatoryPrefix4, + new object[] { Gv_Mv, code[nameof(Code.Movbe_r16_m16)], code[nameof(Code.Movbe_r32_m32)], code[nameof(Code.Movbe_r64_m64)] }, + new object[] { Gv_Mv, code[nameof(Code.Movbe_r16_m16)], code[nameof(Code.Movbe_r32_m32)], code[nameof(Code.Movbe_r64_m64)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Eb_REX)], codeEnum[nameof(Code.Crc32_r32_rm8)], codeEnum[nameof(Code.Crc32_r64_rm8)] }, + new object[] { Gv_Eb_REX, code[nameof(Code.Crc32_r32_rm8)], code[nameof(Code.Crc32_r64_rm8)] }, 0x1C, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mv_Gv)], codeEnum[nameof(Code.Movbe_m16_r16)], codeEnum[nameof(Code.Movbe_m32_r32)], codeEnum[nameof(Code.Movbe_m64_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mv_Gv)], codeEnum[nameof(Code.Movbe_m16_r16)], codeEnum[nameof(Code.Movbe_m32_r32)], codeEnum[nameof(Code.Movbe_m64_r64)] }, + new object[] { MandatoryPrefix4, + new object[] { Mv_Gv, code[nameof(Code.Movbe_m16_r16)], code[nameof(Code.Movbe_m32_r32)], code[nameof(Code.Movbe_m64_r64)] }, + new object[] { Mv_Gv, code[nameof(Code.Movbe_m16_r16)], code[nameof(Code.Movbe_m32_r32)], code[nameof(Code.Movbe_m64_r64)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gdq_Ev)], codeEnum[nameof(Code.Crc32_r32_rm16)], codeEnum[nameof(Code.Crc32_r32_rm32)], codeEnum[nameof(Code.Crc32_r64_rm64)] }, + new object[] { Gdq_Ev, code[nameof(Code.Crc32_r32_rm16)], code[nameof(Code.Crc32_r32_rm32)], code[nameof(Code.Crc32_r64_rm64)] }, 0x1C, }, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_REX)], codeEnum[nameof(Code.Wrussd_m32_r32)], codeEnum[nameof(Code.Wrussq_m64_r64)] } + new object[] { Ev_Gv_REX, code[nameof(Code.Wrussd_m32_r32)], code[nameof(Code.Wrussq_m64_r64)] } }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { MandatoryPrefix, + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_REX)], codeEnum[nameof(Code.Wrssd_m32_r32)], codeEnum[nameof(Code.Wrssq_m64_r64)] } + new object[] { Ev_Gv_REX, code[nameof(Code.Wrssd_m32_r32)], code[nameof(Code.Wrssq_m64_r64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_REX)], codeEnum[nameof(Code.Adcx_r32_rm32)], codeEnum[nameof(Code.Adcx_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_REX)], codeEnum[nameof(Code.Adox_r32_rm32)], codeEnum[nameof(Code.Adox_r64_rm64)] }, + new object[] { Gv_Ev_REX, code[nameof(Code.Adcx_r32_rm32)], code[nameof(Code.Adcx_r64_rm64)] }, + new object[] { Gv_Ev_REX, code[nameof(Code.Adox_r32_rm32)], code[nameof(Code.Adox_r64_rm64)] }, invalid, }, invalid, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_M_as)], codeEnum[nameof(Code.Movdir64b_r16_m512)], codeEnum[nameof(Code.Movdir64b_r32_m512)], codeEnum[nameof(Code.Movdir64b_r64_m512)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_M_as)], codeEnum[nameof(Code.Enqcmds_r16_m512)], codeEnum[nameof(Code.Enqcmds_r32_m512)], codeEnum[nameof(Code.Enqcmds_r64_m512)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_M_as)], codeEnum[nameof(Code.Enqcmd_r16_m512)], codeEnum[nameof(Code.Enqcmd_r32_m512)], codeEnum[nameof(Code.Enqcmd_r64_m512)] } + new object[] { Gv_M_as, code[nameof(Code.Movdir64b_r16_m512)], code[nameof(Code.Movdir64b_r32_m512)], code[nameof(Code.Movdir64b_r64_m512)] }, + new object[] { Gv_M_as, code[nameof(Code.Enqcmds_r16_m512)], code[nameof(Code.Enqcmds_r32_m512)], code[nameof(Code.Enqcmds_r64_m512)] }, + new object[] { Gv_M_as, code[nameof(Code.Enqcmd_r16_m512)], code[nameof(Code.Enqcmd_r32_m512)], code[nameof(Code.Enqcmd_r64_m512)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { MandatoryPrefix, + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_REX)], codeEnum[nameof(Code.Movdiri_m32_r32)], codeEnum[nameof(Code.Movdiri_m64_r64)] } + new object[] { Ev_Gv_REX, code[nameof(Code.Movdiri_m32_r32)], code[nameof(Code.Movdiri_m64_r64)] } }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gd_Rd)], codeEnum[nameof(Code.Encodekey128_r32_r32)] }, + new object[] { RM, + new object[] { Gd_Rd, code[nameof(Code.Encodekey128_r32_r32)] }, invalid, }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gd_Rd)], codeEnum[nameof(Code.Encodekey256_r32_r32)] }, + new object[] { RM, + new object[] { Gd_Rd, code[nameof(Code.Encodekey256_r32_r32)] }, invalid, }, invalid, @@ -3236,51 +3458,51 @@ namespace Generator.Decoder { invalid, // 08 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Roundps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Roundps_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Roundpd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Roundpd_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Roundss_xmm_xmmm32_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Roundss_xmm_xmmm32_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Roundsd_xmm_xmmm64_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Roundsd_xmm_xmmm64_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Blendps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Blendps_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Blendpd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Blendpd_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pblendw_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pblendw_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q_Ib)], codeEnum[nameof(Code.Palignr_mm_mmm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Palignr_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q_Ib, code[nameof(Code.Palignr_mm_mmm64_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Palignr_xmm_xmmm128_imm8)] }, invalid, invalid, }, @@ -3290,27 +3512,27 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.GvM_VX_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pextrb_r32m8_xmm_imm8)], codeEnum[nameof(Code.Pextrb_r64m8_xmm_imm8)] }, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.Pextrb_r32m8_xmm_imm8)], code[nameof(Code.Pextrb_r64m8_xmm_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.GvM_VX_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pextrw_r32m16_xmm_imm8)], codeEnum[nameof(Code.Pextrw_r64m16_xmm_imm8)] }, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.Pextrw_r32m16_xmm_imm8)], code[nameof(Code.Pextrw_r64m16_xmm_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.GvM_VX_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pextrd_rm32_xmm_imm8)], codeEnum[nameof(Code.Pextrq_rm64_xmm_imm8)] }, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.Pextrd_rm32_xmm_imm8)], code[nameof(Code.Pextrq_rm64_xmm_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ed_V_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Extractps_rm32_xmm_imm8)], codeEnum[nameof(Code.Extractps_r64m32_xmm_imm8)] }, + new object[] { Ed_V_Ib, xmm0, code[nameof(Code.Extractps_rm32_xmm_imm8)], code[nameof(Code.Extractps_r64m32_xmm_imm8)] }, invalid, invalid, }, @@ -3326,21 +3548,21 @@ namespace Generator.Decoder { invalid, // 20 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VX_E_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pinsrb_xmm_r32m8_imm8)], codeEnum[nameof(Code.Pinsrb_xmm_r64m8_imm8)] }, + new object[] { VX_E_Ib, xmm0, code[nameof(Code.Pinsrb_xmm_r32m8_imm8)], code[nameof(Code.Pinsrb_xmm_r64m8_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Insertps_xmm_xmmm32_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Insertps_xmm_xmmm32_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VX_E_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pinsrd_xmm_rm32_imm8)], codeEnum[nameof(Code.Pinsrq_xmm_rm64_imm8)] }, + new object[] { VX_E_Ib, xmm0, code[nameof(Code.Pinsrd_xmm_rm32_imm8)], code[nameof(Code.Pinsrq_xmm_rm64_imm8)] }, invalid, invalid, }, @@ -3381,28 +3603,28 @@ namespace Generator.Decoder { invalid, // 40 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Dpps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Dpps_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Dppd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Dppd_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Mpsadbw_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Mpsadbw_xmm_xmmm128_imm8)] }, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pclmulqdq_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pclmulqdq_xmm_xmmm128_imm8)] }, invalid, invalid, }, @@ -3441,27 +3663,27 @@ namespace Generator.Decoder { invalid, // 60 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpestrm_xmm_xmmm128_imm8)], codeEnum[nameof(Code.Pcmpestrm64_xmm_xmmm128_imm8)] }, + new object[] { VWIb_3, xmm0, code[nameof(Code.Pcmpestrm_xmm_xmmm128_imm8)], code[nameof(Code.Pcmpestrm64_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpestri_xmm_xmmm128_imm8)], codeEnum[nameof(Code.Pcmpestri64_xmm_xmmm128_imm8)] }, + new object[] { VWIb_3, xmm0, code[nameof(Code.Pcmpestri_xmm_xmmm128_imm8)], code[nameof(Code.Pcmpestri64_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpistrm_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pcmpistrm_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpistri_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pcmpistri_xmm_xmmm128_imm8)] }, invalid, invalid, }, @@ -3595,22 +3817,22 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sha1rnds4_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { VWIb_2, xmm0, code[nameof(Code.Sha1rnds4_xmm_xmmm128_imm8)] }, invalid, invalid, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Gf2p8affineqb_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Gf2p8affineqb_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Gf2p8affineinvqb_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Gf2p8affineinvqb_xmm_xmmm128_imm8)] }, invalid, invalid, }, @@ -3633,9 +3855,9 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Aeskeygenassist_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Aeskeygenassist_xmm_xmmm128_imm8)] }, invalid, invalid, }, @@ -3661,7 +3883,7 @@ namespace Generator.Decoder { invalid, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0F3AF0_lo", "handlers_Grp_0F3AF0_hi" }, + new object[] { Group8x64, "handlers_Grp_0F3AF0_lo", "handlers_Grp_0F3AF0_hi" }, invalid, invalid, invalid, @@ -3684,141 +3906,141 @@ namespace Generator.Decoder { ("Handlers_0F", new object[0x100] { // 00 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F00" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0F01_lo", "handlers_Grp_0F01_hi" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev3)], codeEnum[nameof(Code.Lar_r16_rm16)], codeEnum[nameof(Code.Lar_r32_r32m16)], codeEnum[nameof(Code.Lar_r64_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev3)], codeEnum[nameof(Code.Lsl_r16_rm16)], codeEnum[nameof(Code.Lsl_r32_r32m16)], codeEnum[nameof(Code.Lsl_r64_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { Group, "handlers_Grp_0F00" }, + new object[] { Group8x64, "handlers_Grp_0F01_lo", "handlers_Grp_0F01_hi" }, + new object[] { Gv_Ev3, code[nameof(Code.Lar_r16_rm16)], code[nameof(Code.Lar_r32_r32m16)], code[nameof(Code.Lar_r64_r64m16)] }, + new object[] { Gv_Ev3, code[nameof(Code.Lsl_r16_rm16)], code[nameof(Code.Lsl_r32_r32m16)], code[nameof(Code.Lsl_r64_r64m16)] }, + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Storeall)] }, decoderOptionsEnum[nameof(DecoderOptions.Loadall286)] + new object[] { Simple, code[nameof(Code.Storeall)] }, options[nameof(DecoderOptions.Loadall286)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Syscall)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Loadall286)] }, decoderOptionsEnum[nameof(DecoderOptions.Loadall286)] + new object[] { Bitness, + new object[] { Options3, + new object[] { Simple, code[nameof(Code.Syscall)] }, + new object[] { Simple, code[nameof(Code.Loadall286)] }, options[nameof(DecoderOptions.Loadall286)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Syscall)] }, + new object[] { Simple, code[nameof(Code.Syscall)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Clts)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3b)], codeEnum[nameof(Code.Sysretd)], codeEnum[nameof(Code.Sysretd)], codeEnum[nameof(Code.Sysretq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Loadall386)] }, decoderOptionsEnum[nameof(DecoderOptions.Loadall386)] + new object[] { Simple, code[nameof(Code.Clts)] }, + new object[] { Bitness, + new object[] { Options3, + new object[] { Simple2_3b, code[nameof(Code.Sysretd)], code[nameof(Code.Sysretd)], code[nameof(Code.Sysretq)] }, + new object[] { Simple, code[nameof(Code.Loadall386)] }, options[nameof(DecoderOptions.Loadall386)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3b)], codeEnum[nameof(Code.Sysretd)], codeEnum[nameof(Code.Sysretd)], codeEnum[nameof(Code.Sysretq)] }, + new object[] { Simple2_3b, code[nameof(Code.Sysretd)], code[nameof(Code.Sysretd)], code[nameof(Code.Sysretq)] }, }, // 08 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Invd)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Wbinvd)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { Simple, code[nameof(Code.Invd)] }, + new object[] { Wbinvd }, + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cl1invmb)] }, decoderOptionsEnum[nameof(DecoderOptions.Cl1invmb)] + new object[] { Simple, code[nameof(Code.Cl1invmb)] }, options[nameof(DecoderOptions.Cl1invmb)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Ud2)] }, + new object[] { Simple, code[nameof(Code.Ud2)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + new object[] { Reservednop, "reservedNop_0F0D", "grp0F0D" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Femms)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.D3NOW)] }, + new object[] { Simple, code[nameof(Code.Femms)] }, + new object[] { D3NOW }, // 10 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movups_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movupd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movsd_xmm_xmmm64)] } + new object[] { Bitness, + new object[] { Options3, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Movups_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movupd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_1)], codeEnum[nameof(Code.Umov_rm8_r8)] }, decoderOptionsEnum[nameof(DecoderOptions.Umov)] + new object[] { Eb_Gb_1, code[nameof(Code.Umov_rm8_r8)] }, options[nameof(DecoderOptions.Umov)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movups_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movupd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movsd_xmm_xmmm64)] } + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Movups_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movupd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movsd_xmm_xmmm64)] } }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movups_xmmm128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movupd_xmmm128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movss_xmmm32_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movsd_xmmm64_xmm)] } + new object[] { Bitness, + new object[] { Options3, + new object[] { MandatoryPrefix, + new object[] { WV, xmm0, code[nameof(Code.Movups_xmmm128_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movupd_xmmm128_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movss_xmmm32_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movsd_xmmm64_xmm)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3b)], codeEnum[nameof(Code.Umov_rm16_r16)], codeEnum[nameof(Code.Umov_rm32_r32)] }, decoderOptionsEnum[nameof(DecoderOptions.Umov)] + new object[] { Ev_Gv_3b, code[nameof(Code.Umov_rm16_r16)], code[nameof(Code.Umov_rm32_r32)] }, options[nameof(DecoderOptions.Umov)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movups_xmmm128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movupd_xmmm128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movss_xmmm32_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movsd_xmmm64_xmm)] } + new object[] { MandatoryPrefix, + new object[] { WV, xmm0, code[nameof(Code.Movups_xmmm128_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movupd_xmmm128_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movss_xmmm32_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movsd_xmmm64_xmm)] } }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movhlps_xmm_xmm)], codeEnum[nameof(Code.Movlps_xmm_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlpd_xmm_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movsldup_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movddup_xmm_xmmm64)] } + new object[] { Bitness, + new object[] { Options3, + new object[] { MandatoryPrefix, + new object[] { VW_3, xmm0, code[nameof(Code.Movhlps_xmm_xmm)], code[nameof(Code.Movlps_xmm_m64)] }, + new object[] { VM, xmm0, code[nameof(Code.Movlpd_xmm_m64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movsldup_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movddup_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Umov_r8_rm8)] }, decoderOptionsEnum[nameof(DecoderOptions.Umov)] + new object[] { Gb_Eb, code[nameof(Code.Umov_r8_rm8)] }, options[nameof(DecoderOptions.Umov)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movhlps_xmm_xmm)], codeEnum[nameof(Code.Movlps_xmm_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlpd_xmm_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movsldup_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movddup_xmm_xmmm64)] } + new object[] { MandatoryPrefix, + new object[] { VW_3, xmm0, code[nameof(Code.Movhlps_xmm_xmm)], code[nameof(Code.Movlps_xmm_m64)] }, + new object[] { VM, xmm0, code[nameof(Code.Movlpd_xmm_m64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movsldup_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movddup_xmm_xmmm64)] } }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlps_m64_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlpd_m64_xmm)] }, + new object[] { Bitness, + new object[] { Options3, + new object[] { MandatoryPrefix, + new object[] { MV, xmm0, code[nameof(Code.Movlps_m64_xmm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movlpd_m64_xmm)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3b)], codeEnum[nameof(Code.Umov_r16_rm16)], codeEnum[nameof(Code.Umov_r32_rm32)] }, decoderOptionsEnum[nameof(DecoderOptions.Umov)] + new object[] { Gv_Ev_3b, code[nameof(Code.Umov_r16_rm16)], code[nameof(Code.Umov_r32_rm32)] }, options[nameof(DecoderOptions.Umov)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlps_m64_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlpd_m64_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { MV, xmm0, code[nameof(Code.Movlps_m64_xmm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movlpd_m64_xmm)] }, invalid, invalid, }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Unpcklps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Unpcklpd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Unpcklps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Unpcklpd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Unpckhps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Unpckhpd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Unpckhps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Unpckhpd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movlhps_xmm_xmm)], codeEnum[nameof(Code.Movhps_xmm_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movhpd_xmm_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movshdup_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_3, xmm0, code[nameof(Code.Movlhps_xmm_xmm)], code[nameof(Code.Movhps_xmm_m64)] }, + new object[] { VM, xmm0, code[nameof(Code.Movhpd_xmm_m64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movshdup_xmm_xmmm128)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movhps_m64_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movhpd_m64_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { MV, xmm0, code[nameof(Code.Movhps_m64_xmm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movhpd_m64_xmm)] }, invalid, invalid, }, @@ -3826,37 +4048,37 @@ namespace Generator.Decoder { // 18 "grp0F18", "reservedNop_0F19", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + new object[] { Reservednop, "reservedNop_0F1A", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options_DontReadModRM)], + new object[] { Options_DontReadModRM, "reservedNop_0F1A", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { MandatoryPrefix, + new object[] { RM, "reservedNop_0F1A", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.B_MIB)], codeEnum[nameof(Code.Bndldx_bnd_mib)] } + new object[] { B_MIB, code[nameof(Code.Bndldx_bnd_mib)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.B_BM)], codeEnum[nameof(Code.Bndmov_bnd_bndm64)], codeEnum[nameof(Code.Bndmov_bnd_bndm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.B_Ev)], codeEnum[nameof(Code.Bndcl_bnd_rm32)], codeEnum[nameof(Code.Bndcl_bnd_rm64)], true }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.B_Ev)], codeEnum[nameof(Code.Bndcu_bnd_rm32)], codeEnum[nameof(Code.Bndcu_bnd_rm64)], true } - }, decoderOptionsEnum[nameof(DecoderOptions.MPX)] + new object[] { B_BM, code[nameof(Code.Bndmov_bnd_bndm64)], code[nameof(Code.Bndmov_bnd_bndm128)] }, + new object[] { B_Ev, code[nameof(Code.Bndcl_bnd_rm32)], code[nameof(Code.Bndcl_bnd_rm64)], true }, + new object[] { B_Ev, code[nameof(Code.Bndcu_bnd_rm32)], code[nameof(Code.Bndcu_bnd_rm64)], true } + }, options[nameof(DecoderOptions.MPX)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reservednop)], + new object[] { Reservednop, "reservedNop_0F1B", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options_DontReadModRM)], + new object[] { Options_DontReadModRM, "reservedNop_0F1B", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { MandatoryPrefix, + new object[] { RM, "reservedNop_0F1B", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MIB_B)], codeEnum[nameof(Code.Bndstx_mib_bnd)] } + new object[] { MIB_B, code[nameof(Code.Bndstx_mib_bnd)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.BM_B)], codeEnum[nameof(Code.Bndmov_bndm64_bnd)], codeEnum[nameof(Code.Bndmov_bndm128_bnd)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { BM_B, code[nameof(Code.Bndmov_bndm64_bnd)], code[nameof(Code.Bndmov_bndm128_bnd)] }, + new object[] { RM, "reservedNop_0F1B", - new object[] { legacyEnum[nameof(OpCodeHandlerKind.B_Ev)], codeEnum[nameof(Code.Bndmk_bnd_m32)], codeEnum[nameof(Code.Bndmk_bnd_m64)], false } + new object[] { B_Ev, code[nameof(Code.Bndmk_bnd_m32)], code[nameof(Code.Bndmk_bnd_m64)], false } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.B_Ev)], codeEnum[nameof(Code.Bndcn_bnd_rm32)], codeEnum[nameof(Code.Bndcn_bnd_rm64)], true } - }, decoderOptionsEnum[nameof(DecoderOptions.MPX)] + new object[] { B_Ev, code[nameof(Code.Bndcn_bnd_rm32)], code[nameof(Code.Bndcn_bnd_rm64)], true } + }, options[nameof(DecoderOptions.MPX)] } }, "grp0F1C", @@ -3865,1421 +4087,1421 @@ namespace Generator.Decoder { "grp0F1F", // 20 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.R_C_3a)], codeEnum[nameof(Code.Mov_r32_cr)], codeEnum[nameof(Code.Mov_r64_cr)], registerEnum[nameof(Register.CR0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.R_C_3a)], codeEnum[nameof(Code.Mov_r32_dr)], codeEnum[nameof(Code.Mov_r64_dr)], registerEnum[nameof(Register.DR0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.C_R_3a)], codeEnum[nameof(Code.Mov_cr_r32)], codeEnum[nameof(Code.Mov_cr_r64)], registerEnum[nameof(Register.CR0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.C_R_3a)], codeEnum[nameof(Code.Mov_dr_r32)], codeEnum[nameof(Code.Mov_dr_r64)], registerEnum[nameof(Register.DR0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { R_C_3a, code[nameof(Code.Mov_r32_cr)], code[nameof(Code.Mov_r64_cr)], cr0 }, + new object[] { R_C_3a, code[nameof(Code.Mov_r32_dr)], code[nameof(Code.Mov_r64_dr)], dr0 }, + new object[] { C_R_3a, code[nameof(Code.Mov_cr_r32)], code[nameof(Code.Mov_cr_r64)], cr0 }, + new object[] { C_R_3a, code[nameof(Code.Mov_dr_r32)], code[nameof(Code.Mov_dr_r64)], dr0 }, + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.R_C_3b)], codeEnum[nameof(Code.Mov_r32_tr)], registerEnum[nameof(Register.TR0)] }, decoderOptionsEnum[nameof(DecoderOptions.MovTr)] + new object[] { R_C_3b, code[nameof(Code.Mov_r32_tr)], tr0 }, options[nameof(DecoderOptions.MovTr)] }, invalid, }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], + new object[] { Bitness, + new object[] { Options3, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.C_R_3b)], codeEnum[nameof(Code.Mov_tr_r32)], registerEnum[nameof(Register.TR0)] }, decoderOptionsEnum[nameof(DecoderOptions.MovTr)] + new object[] { C_R_3b, code[nameof(Code.Mov_tr_r32)], tr0 }, options[nameof(DecoderOptions.MovTr)] }, invalid, }, invalid, // 28 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movaps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movapd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Movaps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movapd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movaps_xmmm128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movapd_xmmm128_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { WV, xmm0, code[nameof(Code.Movaps_xmmm128_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movapd_xmmm128_xmm)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VQ)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtpi2ps_xmm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VQ)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtpi2pd_xmm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.V_Ev)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtsi2ss_xmm_rm32)], codeEnum[nameof(Code.Cvtsi2ss_xmm_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.V_Ev)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtsi2sd_xmm_rm32)], codeEnum[nameof(Code.Cvtsi2sd_xmm_rm64)] } + new object[] { MandatoryPrefix, + new object[] { VQ, xmm0, code[nameof(Code.Cvtpi2ps_xmm_mmm64)] }, + new object[] { VQ, xmm0, code[nameof(Code.Cvtpi2pd_xmm_mmm64)] }, + new object[] { V_Ev, xmm0, code[nameof(Code.Cvtsi2ss_xmm_rm32)], code[nameof(Code.Cvtsi2ss_xmm_rm64)] }, + new object[] { V_Ev, xmm0, code[nameof(Code.Cvtsi2sd_xmm_rm32)], code[nameof(Code.Cvtsi2sd_xmm_rm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movntps_m128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movntpd_m128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movntss_m32_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movntsd_m64_xmm)] } + new object[] { MandatoryPrefix, + new object[] { MV, xmm0, code[nameof(Code.Movntps_m128_xmm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movntpd_m128_xmm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movntss_m32_xmm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movntsd_m64_xmm)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvttps2pi_mm_xmmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvttpd2pi_mm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvttss2si_r32_xmmm32)], codeEnum[nameof(Code.Cvttss2si_r64_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvttsd2si_r32_xmmm64)], codeEnum[nameof(Code.Cvttsd2si_r64_xmmm64)] } + new object[] { MandatoryPrefix, + new object[] { P_W, xmm0, code[nameof(Code.Cvttps2pi_mm_xmmm64)] }, + new object[] { P_W, xmm0, code[nameof(Code.Cvttpd2pi_mm_xmmm128)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.Cvttss2si_r32_xmmm32)], code[nameof(Code.Cvttss2si_r64_xmmm32)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.Cvttsd2si_r32_xmmm64)], code[nameof(Code.Cvttsd2si_r64_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtps2pi_mm_xmmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtpd2pi_mm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtss2si_r32_xmmm32)], codeEnum[nameof(Code.Cvtss2si_r64_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtsd2si_r32_xmmm64)], codeEnum[nameof(Code.Cvtsd2si_r64_xmmm64)] } + new object[] { MandatoryPrefix, + new object[] { P_W, xmm0, code[nameof(Code.Cvtps2pi_mm_xmmm64)] }, + new object[] { P_W, xmm0, code[nameof(Code.Cvtpd2pi_mm_xmmm128)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.Cvtss2si_r32_xmmm32)], code[nameof(Code.Cvtss2si_r64_xmmm32)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.Cvtsd2si_r32_xmmm64)], code[nameof(Code.Cvtsd2si_r64_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Ucomiss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Ucomisd_xmm_xmmm64)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Ucomiss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Ucomisd_xmm_xmmm64)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Comiss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Comisd_xmm_xmmm64)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Comiss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Comisd_xmm_xmmm64)] }, invalid, invalid, }, // 30 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Wrmsr)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdtsc)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdmsr)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdpmc)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Sysenter)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple4)], codeEnum[nameof(Code.Sysexitd)], codeEnum[nameof(Code.Sysexitq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Simple, code[nameof(Code.Wrmsr)] }, + new object[] { Simple, code[nameof(Code.Rdtsc)] }, + new object[] { Simple, code[nameof(Code.Rdmsr)] }, + new object[] { Simple, code[nameof(Code.Rdpmc)] }, + new object[] { Simple, code[nameof(Code.Sysenter)] }, + new object[] { Simple4, code[nameof(Code.Sysexitd)], code[nameof(Code.Sysexitq)] }, + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F36_Cyrix" }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Group, "handlers_Grp_0F36_Cyrix" }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple4b)], codeEnum[nameof(Code.Getsecd)], codeEnum[nameof(Code.Getsecq)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple4b, code[nameof(Code.Getsecd)], code[nameof(Code.Getsecq)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F37_Cyrix" }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Group, "handlers_Grp_0F37_Cyrix" }, options[nameof(DecoderOptions.Cyrix)] }, // 38 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.AnotherTable)], "Handlers_0F38" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Smint)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Options1632_1, + new object[] { AnotherTable, "Handlers_0F38" }, + new object[] { Simple, code[nameof(Code.Smint)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Dmint)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix_DMI)] + new object[] { Simple, code[nameof(Code.Dmint)] }, options[nameof(DecoderOptions.Cyrix_DMI)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_2)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.AnotherTable)], "Handlers_0F3A" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rdm)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix_DMI)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Bb0_reset)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)], + new object[] { Options1632_2, + new object[] { AnotherTable, "Handlers_0F3A" }, + new object[] { Simple, code[nameof(Code.Rdm)] }, options[nameof(DecoderOptions.Cyrix_DMI)], + new object[] { Simple, code[nameof(Code.Bb0_reset)] }, options[nameof(DecoderOptions.Cyrix)], }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Bb1_reset)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Bb1_reset)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cpu_write)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cpu_write)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cpu_read)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Simple, code[nameof(Code.Cpu_read)] }, options[nameof(DecoderOptions.Cyrix)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Altinst)] }, decoderOptionsEnum[nameof(DecoderOptions.ALTINST)] + new object[] { Simple, code[nameof(Code.Altinst)] }, options[nameof(DecoderOptions.ALTINST)] }, // 40 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovo_r16_rm16)], codeEnum[nameof(Code.Cmovo_r32_rm32)], codeEnum[nameof(Code.Cmovo_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovno_r16_rm16)], codeEnum[nameof(Code.Cmovno_r32_rm32)], codeEnum[nameof(Code.Cmovno_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovb_r16_rm16)], codeEnum[nameof(Code.Cmovb_r32_rm32)], codeEnum[nameof(Code.Cmovb_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovae_r16_rm16)], codeEnum[nameof(Code.Cmovae_r32_rm32)], codeEnum[nameof(Code.Cmovae_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmove_r16_rm16)], codeEnum[nameof(Code.Cmove_r32_rm32)], codeEnum[nameof(Code.Cmove_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovne_r16_rm16)], codeEnum[nameof(Code.Cmovne_r32_rm32)], codeEnum[nameof(Code.Cmovne_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovbe_r16_rm16)], codeEnum[nameof(Code.Cmovbe_r32_rm32)], codeEnum[nameof(Code.Cmovbe_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmova_r16_rm16)], codeEnum[nameof(Code.Cmova_r32_rm32)], codeEnum[nameof(Code.Cmova_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovo_r16_rm16)], code[nameof(Code.Cmovo_r32_rm32)], code[nameof(Code.Cmovo_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovno_r16_rm16)], code[nameof(Code.Cmovno_r32_rm32)], code[nameof(Code.Cmovno_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovb_r16_rm16)], code[nameof(Code.Cmovb_r32_rm32)], code[nameof(Code.Cmovb_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovae_r16_rm16)], code[nameof(Code.Cmovae_r32_rm32)], code[nameof(Code.Cmovae_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmove_r16_rm16)], code[nameof(Code.Cmove_r32_rm32)], code[nameof(Code.Cmove_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovne_r16_rm16)], code[nameof(Code.Cmovne_r32_rm32)], code[nameof(Code.Cmovne_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovbe_r16_rm16)], code[nameof(Code.Cmovbe_r32_rm32)], code[nameof(Code.Cmovbe_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmova_r16_rm16)], code[nameof(Code.Cmova_r32_rm32)], code[nameof(Code.Cmova_r64_rm64)] }, // 48 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovs_r16_rm16)], codeEnum[nameof(Code.Cmovs_r32_rm32)], codeEnum[nameof(Code.Cmovs_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovns_r16_rm16)], codeEnum[nameof(Code.Cmovns_r32_rm32)], codeEnum[nameof(Code.Cmovns_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovp_r16_rm16)], codeEnum[nameof(Code.Cmovp_r32_rm32)], codeEnum[nameof(Code.Cmovp_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovnp_r16_rm16)], codeEnum[nameof(Code.Cmovnp_r32_rm32)], codeEnum[nameof(Code.Cmovnp_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovl_r16_rm16)], codeEnum[nameof(Code.Cmovl_r32_rm32)], codeEnum[nameof(Code.Cmovl_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovge_r16_rm16)], codeEnum[nameof(Code.Cmovge_r32_rm32)], codeEnum[nameof(Code.Cmovge_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovle_r16_rm16)], codeEnum[nameof(Code.Cmovle_r32_rm32)], codeEnum[nameof(Code.Cmovle_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmovg_r16_rm16)], codeEnum[nameof(Code.Cmovg_r32_rm32)], codeEnum[nameof(Code.Cmovg_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovs_r16_rm16)], code[nameof(Code.Cmovs_r32_rm32)], code[nameof(Code.Cmovs_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovns_r16_rm16)], code[nameof(Code.Cmovns_r32_rm32)], code[nameof(Code.Cmovns_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovp_r16_rm16)], code[nameof(Code.Cmovp_r32_rm32)], code[nameof(Code.Cmovp_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovnp_r16_rm16)], code[nameof(Code.Cmovnp_r32_rm32)], code[nameof(Code.Cmovnp_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovl_r16_rm16)], code[nameof(Code.Cmovl_r32_rm32)], code[nameof(Code.Cmovl_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovge_r16_rm16)], code[nameof(Code.Cmovge_r32_rm32)], code[nameof(Code.Cmovge_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovle_r16_rm16)], code[nameof(Code.Cmovle_r32_rm32)], code[nameof(Code.Cmovle_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmovg_r16_rm16)], code[nameof(Code.Cmovg_r32_rm32)], code[nameof(Code.Cmovg_r64_rm64)] }, // 50 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movmskps_r32_xmm)], codeEnum[nameof(Code.Movmskps_r64_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movmskpd_r32_xmm)], codeEnum[nameof(Code.Movmskpd_r64_xmm)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { Gv_RX, xmm0, code[nameof(Code.Movmskps_r32_xmm)], code[nameof(Code.Movmskps_r64_xmm)] }, + new object[] { Gv_RX, xmm0, code[nameof(Code.Movmskpd_r32_xmm)], code[nameof(Code.Movmskpd_r64_xmm)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paveb_mm_mmm64)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Paveb_mm_mmm64)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sqrtps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sqrtpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sqrtss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Sqrtsd_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Sqrtps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Sqrtpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Sqrtss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Sqrtsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddsiw_mm_mmm64)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Paddsiw_mm_mmm64)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Rsqrtps_xmm_xmmm128)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Rsqrtps_xmm_xmmm128)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Rsqrtss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Rsqrtss_xmm_xmmm32)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmagw_mm_mmm64)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmagw_mm_mmm64)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Rcpps_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Rcpps_xmm_xmmm128)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Rcpss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Rcpss_xmm_xmmm32)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Andps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Andpd_xmm_xmmm128)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Andps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Andpd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pdistib_mm_m64)] } - }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pdistib_mm_m64)] } + }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Andnps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Andnpd_xmm_xmmm128)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Andnps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Andnpd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubsiw_mm_mmm64)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Psubsiw_mm_mmm64)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Orps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Orpd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Orps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Orpd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Xorps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Xorpd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Xorps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Xorpd_xmm_xmmm128)] }, invalid, invalid, }, // 58 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Addps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Addpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Addss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Addsd_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Addps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Addpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Addss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Addsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmvzb_mm_m64)] } - }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmvzb_mm_m64)] } + }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Mulps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Mulpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Mulss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Mulsd_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Mulps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Mulpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Mulss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Mulsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmulhrw_mm_mmm64)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmulhrw_mm_mmm64)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtps2pd_xmm_xmmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtpd2ps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtss2sd_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtsd2ss_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtps2pd_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtpd2ps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtss2sd_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtsd2ss_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmvnzb_mm_m64)] } - }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmvnzb_mm_m64)] } + }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtdq2ps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtps2dq_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvttps2dq_xmm_xmmm128)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtdq2ps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtps2dq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvttps2dq_xmm_xmmm128)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmvlzb_mm_m64)] } - }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmvlzb_mm_m64)] } + }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Subps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Subpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Subss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Subsd_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Subps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Subpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Subss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Subsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmvgezb_mm_m64)] } - }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmvgezb_mm_m64)] } + }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Minps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Minpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Minss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Minsd_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Minps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Minpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Minss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Minsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmulhriw_mm_mmm64)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmulhriw_mm_mmm64)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Divps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Divpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Divss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Divsd_xmm_xmmm64)] } + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Divps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Divpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Divss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Divsd_xmm_xmmm64)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmachriw_mm_m64)] } - }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { P_Q, code[nameof(Code.Pmachriw_mm_m64)] } + }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Maxps_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Maxpd_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Maxss_xmm_xmmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Maxsd_xmm_xmmm64)] } + new object[] { MandatoryPrefix, + new object[] { VW_2, xmm0, code[nameof(Code.Maxps_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Maxpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Maxss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Maxsd_xmm_xmmm64)] } }, // 60 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Punpcklbw_mm_mmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpcklbw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Punpcklbw_mm_mmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpcklbw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Punpcklwd_mm_mmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpcklwd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Punpcklwd_mm_mmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpcklwd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Punpckldq_mm_mmm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpckldq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Punpckldq_mm_mmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpckldq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Packsswb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Packsswb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Packsswb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Packsswb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pcmpgtb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpgtb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pcmpgtb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpgtb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pcmpgtw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpgtw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pcmpgtw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpgtw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pcmpgtd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpgtd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pcmpgtd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpgtd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Packuswb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Packuswb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Packuswb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Packuswb_xmm_xmmm128)] }, invalid, invalid, }, // 68 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Punpckhbw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpckhbw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Punpckhbw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpckhbw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Punpckhwd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpckhwd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Punpckhwd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpckhwd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Punpckhdq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpckhdq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Punpckhdq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpckhdq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Packssdw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Packssdw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Packssdw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Packssdw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpcklqdq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpcklqdq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Punpckhqdq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Punpckhqdq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Ev)], codeEnum[nameof(Code.Movd_mm_rm32)], codeEnum[nameof(Code.Movq_mm_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VX_Ev)], codeEnum[nameof(Code.Movd_xmm_rm32)], codeEnum[nameof(Code.Movq_xmm_rm64)] }, + new object[] { MandatoryPrefix, + new object[] { P_Ev, code[nameof(Code.Movd_mm_rm32)], code[nameof(Code.Movq_mm_rm64)] }, + new object[] { VX_Ev, code[nameof(Code.Movd_xmm_rm32)], code[nameof(Code.Movq_xmm_rm64)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Movq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movdqa_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movdqu_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Movq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movdqa_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movdqu_xmm_xmmm128)] }, invalid, }, // 70 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q_Ib)], codeEnum[nameof(Code.Pshufw_mm_mmm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pshufd_xmm_xmmm128_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pshufhw_xmm_xmmm128_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pshuflw_xmm_xmmm128_imm8)] } + new object[] { MandatoryPrefix, + new object[] { P_Q_Ib, code[nameof(Code.Pshufw_mm_mmm64_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pshufd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pshufhw_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Pshuflw_xmm_xmmm128_imm8)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F71" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F72" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F73" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pcmpeqb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpeqb_xmm_xmmm128)] }, + new object[] { Group, "handlers_Grp_0F71" }, + new object[] { Group, "handlers_Grp_0F72" }, + new object[] { Group, "handlers_Grp_0F73" }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pcmpeqb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpeqb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pcmpeqw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpeqw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pcmpeqw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpeqw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pcmpeqd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pcmpeqd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pcmpeqd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pcmpeqd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix_NoModRM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Emms)] }, + new object[] { MandatoryPrefix_NoModRM, + new object[] { Simple, code[nameof(Code.Emms)] }, invalid_NoModRM, invalid_NoModRM, invalid_NoModRM, }, // 78 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_32_64)], codeEnum[nameof(Code.Vmread_rm32_r32)], codeEnum[nameof(Code.Vmread_rm64_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_660F78" }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { Ev_Gv_32_64, code[nameof(Code.Vmread_rm32_r32)], code[nameof(Code.Vmread_rm64_r64)] }, + new object[] { Group, "handlers_Grp_660F78" }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VRIbIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Insertq_xmm_xmm_imm8_imm8)] } + new object[] { VRIbIb, xmm0, code[nameof(Code.Insertq_xmm_xmm_imm8_imm8)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.M_Sw)], codeEnum[nameof(Code.Svdc_m80_Sreg)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { M_Sw, code[nameof(Code.Svdc_m80_Sreg)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_32_64)], codeEnum[nameof(Code.Vmwrite_r32_rm32)], codeEnum[nameof(Code.Vmwrite_r64_rm64)], true, true }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Extrq_xmm_xmm)], codeEnum[nameof(Code.INVALID)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { Gv_Ev_32_64, code[nameof(Code.Vmwrite_r32_rm32)], code[nameof(Code.Vmwrite_r64_rm64)], true, true }, + new object[] { VW_3, xmm0, code[nameof(Code.Extrq_xmm_xmm)], code[nameof(Code.INVALID)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Insertq_xmm_xmm)], codeEnum[nameof(Code.INVALID)] } + new object[] { VW_3, xmm0, code[nameof(Code.Insertq_xmm_xmm)], code[nameof(Code.INVALID)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Sw_M)], codeEnum[nameof(Code.Rsdc_Sreg_m80)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Sw_M, code[nameof(Code.Rsdc_Sreg_m80)] }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F7A_Cyrix" }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Group, "handlers_Grp_0F7A_Cyrix" }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], + new object[] { Options1632_1, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F7B_Cyrix" }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Group, "handlers_Grp_0F7B_Cyrix" }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { Options1632_1, + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Haddpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Haddpd_xmm_xmmm128)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Haddps_xmm_xmmm128)] } + new object[] { VW_2, xmm0, code[nameof(Code.Haddps_xmm_xmmm128)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F7C_Cyrix" }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Group, "handlers_Grp_0F7C_Cyrix" }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { Options1632_1, + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Hsubpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Hsubpd_xmm_xmmm128)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Hsubps_xmm_xmmm128)] } + new object[] { VW_2, xmm0, code[nameof(Code.Hsubps_xmm_xmmm128)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0F7D_Cyrix" }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix)] + new object[] { Group, "handlers_Grp_0F7D_Cyrix" }, options[nameof(DecoderOptions.Cyrix)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options1632_1)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_P)], codeEnum[nameof(Code.Movd_rm32_mm)], codeEnum[nameof(Code.Movq_rm64_mm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_VX)], codeEnum[nameof(Code.Movd_rm32_xmm)], codeEnum[nameof(Code.Movq_rm64_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movq_xmm_xmmm64)] }, + new object[] { Options1632_1, + new object[] { MandatoryPrefix, + new object[] { Ev_P, code[nameof(Code.Movd_rm32_mm)], code[nameof(Code.Movq_rm64_mm)] }, + new object[] { Ev_VX, code[nameof(Code.Movd_rm32_xmm)], code[nameof(Code.Movq_rm64_xmm)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Movq_xmm_xmmm64)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Smint_0F7E)] }, decoderOptionsEnum[nameof(DecoderOptions.Cyrix_SMINT_0F7E)] + new object[] { Simple, code[nameof(Code.Smint_0F7E)] }, options[nameof(DecoderOptions.Cyrix_SMINT_0F7E)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Q_P)], codeEnum[nameof(Code.Movq_mmm64_mm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movdqa_xmmm128_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movdqu_xmmm128_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { Q_P, code[nameof(Code.Movq_mmm64_mm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movdqa_xmmm128_xmm)] }, + new object[] { WV, xmm0, code[nameof(Code.Movdqu_xmmm128_xmm)] }, invalid, }, // 80 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jo_rel16)], codeEnum[nameof(Code.Jo_rel32_32)], codeEnum[nameof(Code.Jo_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jno_rel16)], codeEnum[nameof(Code.Jno_rel32_32)], codeEnum[nameof(Code.Jno_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jb_rel16)], codeEnum[nameof(Code.Jb_rel32_32)], codeEnum[nameof(Code.Jb_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jae_rel16)], codeEnum[nameof(Code.Jae_rel32_32)], codeEnum[nameof(Code.Jae_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Je_rel16)], codeEnum[nameof(Code.Je_rel32_32)], codeEnum[nameof(Code.Je_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jne_rel16)], codeEnum[nameof(Code.Jne_rel32_32)], codeEnum[nameof(Code.Jne_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jbe_rel16)], codeEnum[nameof(Code.Jbe_rel32_32)], codeEnum[nameof(Code.Jbe_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Ja_rel16)], codeEnum[nameof(Code.Ja_rel32_32)], codeEnum[nameof(Code.Ja_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jo_rel16)], code[nameof(Code.Jo_rel32_32)], code[nameof(Code.Jo_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jno_rel16)], code[nameof(Code.Jno_rel32_32)], code[nameof(Code.Jno_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jb_rel16)], code[nameof(Code.Jb_rel32_32)], code[nameof(Code.Jb_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jae_rel16)], code[nameof(Code.Jae_rel32_32)], code[nameof(Code.Jae_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Je_rel16)], code[nameof(Code.Je_rel32_32)], code[nameof(Code.Je_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jne_rel16)], code[nameof(Code.Jne_rel32_32)], code[nameof(Code.Jne_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jbe_rel16)], code[nameof(Code.Jbe_rel32_32)], code[nameof(Code.Jbe_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Ja_rel16)], code[nameof(Code.Ja_rel32_32)], code[nameof(Code.Ja_rel32_64)] }, // 88 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Js_rel16)], codeEnum[nameof(Code.Js_rel32_32)], codeEnum[nameof(Code.Js_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jns_rel16)], codeEnum[nameof(Code.Jns_rel32_32)], codeEnum[nameof(Code.Jns_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jp_rel16)], codeEnum[nameof(Code.Jp_rel32_32)], codeEnum[nameof(Code.Jp_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jnp_rel16)], codeEnum[nameof(Code.Jnp_rel32_32)], codeEnum[nameof(Code.Jnp_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jl_rel16)], codeEnum[nameof(Code.Jl_rel32_32)], codeEnum[nameof(Code.Jl_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jge_rel16)], codeEnum[nameof(Code.Jge_rel32_32)], codeEnum[nameof(Code.Jge_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jle_rel16)], codeEnum[nameof(Code.Jle_rel32_32)], codeEnum[nameof(Code.Jle_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jg_rel16)], codeEnum[nameof(Code.Jg_rel32_32)], codeEnum[nameof(Code.Jg_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Js_rel16)], code[nameof(Code.Js_rel32_32)], code[nameof(Code.Js_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jns_rel16)], code[nameof(Code.Jns_rel32_32)], code[nameof(Code.Jns_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jp_rel16)], code[nameof(Code.Jp_rel32_32)], code[nameof(Code.Jp_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jnp_rel16)], code[nameof(Code.Jnp_rel32_32)], code[nameof(Code.Jnp_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jl_rel16)], code[nameof(Code.Jl_rel32_32)], code[nameof(Code.Jl_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jge_rel16)], code[nameof(Code.Jge_rel32_32)], code[nameof(Code.Jge_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jle_rel16)], code[nameof(Code.Jle_rel32_32)], code[nameof(Code.Jle_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jg_rel16)], code[nameof(Code.Jg_rel32_32)], code[nameof(Code.Jg_rel32_64)] }, // 90 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Seto_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setno_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setb_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setae_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Sete_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setne_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setbe_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Seta_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Seto_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setno_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setb_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setae_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Sete_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setne_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setbe_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Seta_rm8)] }, // 98 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Sets_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setns_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setp_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setnp_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setl_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setge_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setle_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_1)], codeEnum[nameof(Code.Setg_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Sets_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setns_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setp_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setnp_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setl_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setge_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setle_rm8)] }, + new object[] { Eb_1, code[nameof(Code.Setg_rm8)] }, // A0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4a)], codeEnum[nameof(Code.Pushw_FS)], codeEnum[nameof(Code.Pushd_FS)], codeEnum[nameof(Code.Pushq_FS)], registerEnum[nameof(Register.FS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4a)], codeEnum[nameof(Code.Popw_FS)], codeEnum[nameof(Code.Popd_FS)], codeEnum[nameof(Code.Popq_FS)], registerEnum[nameof(Register.FS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cpuid)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Bt_rm16_r16)], codeEnum[nameof(Code.Bt_rm32_r32)], codeEnum[nameof(Code.Bt_rm64_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_Ib)], codeEnum[nameof(Code.Shld_rm16_r16_imm8)], codeEnum[nameof(Code.Shld_rm32_r32_imm8)], codeEnum[nameof(Code.Shld_rm64_r64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_CL)], codeEnum[nameof(Code.Shld_rm16_r16_CL)], codeEnum[nameof(Code.Shld_rm32_r32_CL)], codeEnum[nameof(Code.Shld_rm64_r64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options5)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0FA6_lo", "handlers_Grp_0FA6_hi" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3b)], codeEnum[nameof(Code.Xbts_r16_rm16)], codeEnum[nameof(Code.Xbts_r32_rm32)] }, decoderOptionsEnum[nameof(DecoderOptions.Xbts)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_1)], codeEnum[nameof(Code.Cmpxchg486_rm8_r8)] }, decoderOptionsEnum[nameof(DecoderOptions.Cmpxchg486A)] + new object[] { PushOpSizeReg_4a, code[nameof(Code.Pushw_FS)], code[nameof(Code.Pushd_FS)], code[nameof(Code.Pushq_FS)], fs }, + new object[] { PushOpSizeReg_4a, code[nameof(Code.Popw_FS)], code[nameof(Code.Popd_FS)], code[nameof(Code.Popq_FS)], fs }, + new object[] { Simple, code[nameof(Code.Cpuid)] }, + new object[] { Ev_Gv_3a, code[nameof(Code.Bt_rm16_r16)], code[nameof(Code.Bt_rm32_r32)], code[nameof(Code.Bt_rm64_r64)] }, + new object[] { Ev_Gv_Ib, code[nameof(Code.Shld_rm16_r16_imm8)], code[nameof(Code.Shld_rm32_r32_imm8)], code[nameof(Code.Shld_rm64_r64_imm8)] }, + new object[] { Ev_Gv_CL, code[nameof(Code.Shld_rm16_r16_CL)], code[nameof(Code.Shld_rm32_r32_CL)], code[nameof(Code.Shld_rm64_r64_CL)] }, + new object[] { Bitness, + new object[] { Options5, + new object[] { Group8x64, "handlers_Grp_0FA6_lo", "handlers_Grp_0FA6_hi" }, + new object[] { Gv_Ev_3b, code[nameof(Code.Xbts_r16_rm16)], code[nameof(Code.Xbts_r32_rm32)] }, options[nameof(DecoderOptions.Xbts)], + new object[] { Eb_Gb_1, code[nameof(Code.Cmpxchg486_rm8_r8)] }, options[nameof(DecoderOptions.Cmpxchg486A)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0FA6_lo", "handlers_Grp_0FA6_hi" }, + new object[] { Group8x64, "handlers_Grp_0FA6_lo", "handlers_Grp_0FA6_hi" }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options5)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0FA7_lo", "handlers_Grp_0FA7_hi" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3b)], codeEnum[nameof(Code.Ibts_rm16_r16)], codeEnum[nameof(Code.Ibts_rm32_r32)] }, decoderOptionsEnum[nameof(DecoderOptions.Xbts)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3b)], codeEnum[nameof(Code.Cmpxchg486_rm16_r16)], codeEnum[nameof(Code.Cmpxchg486_rm32_r32)] }, decoderOptionsEnum[nameof(DecoderOptions.Cmpxchg486A)] + new object[] { Bitness, + new object[] { Options5, + new object[] { Group8x64, "handlers_Grp_0FA7_lo", "handlers_Grp_0FA7_hi" }, + new object[] { Ev_Gv_3b, code[nameof(Code.Ibts_rm16_r16)], code[nameof(Code.Ibts_rm32_r32)] }, options[nameof(DecoderOptions.Xbts)], + new object[] { Ev_Gv_3b, code[nameof(Code.Cmpxchg486_rm16_r16)], code[nameof(Code.Cmpxchg486_rm32_r32)] }, options[nameof(DecoderOptions.Cmpxchg486A)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0FA7_lo", "handlers_Grp_0FA7_hi" }, + new object[] { Group8x64, "handlers_Grp_0FA7_lo", "handlers_Grp_0FA7_hi" }, }, // A8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4a)], codeEnum[nameof(Code.Pushw_GS)], codeEnum[nameof(Code.Pushd_GS)], codeEnum[nameof(Code.Pushq_GS)], registerEnum[nameof(Register.GS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4a)], codeEnum[nameof(Code.Popw_GS)], codeEnum[nameof(Code.Popd_GS)], codeEnum[nameof(Code.Popq_GS)], registerEnum[nameof(Register.GS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Rsm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Bts_rm16_r16)], codeEnum[nameof(Code.Bts_rm32_r32)], codeEnum[nameof(Code.Bts_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_Ib)], codeEnum[nameof(Code.Shrd_rm16_r16_imm8)], codeEnum[nameof(Code.Shrd_rm32_r32_imm8)], codeEnum[nameof(Code.Shrd_rm64_r64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_CL)], codeEnum[nameof(Code.Shrd_rm16_r16_CL)], codeEnum[nameof(Code.Shrd_rm32_r32_CL)], codeEnum[nameof(Code.Shrd_rm64_r64_CL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_0FAE_lo", "handlers_Grp_0FAE_hi" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Imul_r16_rm16)], codeEnum[nameof(Code.Imul_r32_rm32)], codeEnum[nameof(Code.Imul_r64_rm64)] }, + new object[] { PushOpSizeReg_4a, code[nameof(Code.Pushw_GS)], code[nameof(Code.Pushd_GS)], code[nameof(Code.Pushq_GS)], gs }, + new object[] { PushOpSizeReg_4a, code[nameof(Code.Popw_GS)], code[nameof(Code.Popd_GS)], code[nameof(Code.Popq_GS)], gs }, + new object[] { Simple, code[nameof(Code.Rsm)] }, + new object[] { Ev_Gv_4, code[nameof(Code.Bts_rm16_r16)], code[nameof(Code.Bts_rm32_r32)], code[nameof(Code.Bts_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_Ib, code[nameof(Code.Shrd_rm16_r16_imm8)], code[nameof(Code.Shrd_rm32_r32_imm8)], code[nameof(Code.Shrd_rm64_r64_imm8)] }, + new object[] { Ev_Gv_CL, code[nameof(Code.Shrd_rm16_r16_CL)], code[nameof(Code.Shrd_rm32_r32_CL)], code[nameof(Code.Shrd_rm64_r64_CL)] }, + new object[] { Group8x64, "handlers_Grp_0FAE_lo", "handlers_Grp_0FAE_hi" }, + new object[] { Gv_Ev_3a, code[nameof(Code.Imul_r16_rm16)], code[nameof(Code.Imul_r32_rm32)], code[nameof(Code.Imul_r64_rm64)] }, // B0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Cmpxchg_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Cmpxchg_rm16_r16)], codeEnum[nameof(Code.Cmpxchg_rm32_r32)], codeEnum[nameof(Code.Cmpxchg_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mp_3)], codeEnum[nameof(Code.Lss_r16_m1616)], codeEnum[nameof(Code.Lss_r32_m1632)], codeEnum[nameof(Code.Lss_r64_m1664)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Btr_rm16_r16)], codeEnum[nameof(Code.Btr_rm32_r32)], codeEnum[nameof(Code.Btr_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mp_3)], codeEnum[nameof(Code.Lfs_r16_m1616)], codeEnum[nameof(Code.Lfs_r32_m1632)], codeEnum[nameof(Code.Lfs_r64_m1664)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mp_3)], codeEnum[nameof(Code.Lgs_r16_m1616)], codeEnum[nameof(Code.Lgs_r32_m1632)], codeEnum[nameof(Code.Lgs_r64_m1664)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Eb)], codeEnum[nameof(Code.Movzx_r16_rm8)], codeEnum[nameof(Code.Movzx_r32_rm8)], codeEnum[nameof(Code.Movzx_r64_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ew)], codeEnum[nameof(Code.Movzx_r16_rm16)], codeEnum[nameof(Code.Movzx_r32_rm16)], codeEnum[nameof(Code.Movzx_r64_rm16)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Cmpxchg_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Cmpxchg_rm16_r16)], code[nameof(Code.Cmpxchg_rm32_r32)], code[nameof(Code.Cmpxchg_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gv_Mp_3, code[nameof(Code.Lss_r16_m1616)], code[nameof(Code.Lss_r32_m1632)], code[nameof(Code.Lss_r64_m1664)] }, + new object[] { Ev_Gv_4, code[nameof(Code.Btr_rm16_r16)], code[nameof(Code.Btr_rm32_r32)], code[nameof(Code.Btr_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gv_Mp_3, code[nameof(Code.Lfs_r16_m1616)], code[nameof(Code.Lfs_r32_m1632)], code[nameof(Code.Lfs_r64_m1664)] }, + new object[] { Gv_Mp_3, code[nameof(Code.Lgs_r16_m1616)], code[nameof(Code.Lgs_r32_m1632)], code[nameof(Code.Lgs_r64_m1664)] }, + new object[] { Gv_Eb, code[nameof(Code.Movzx_r16_rm8)], code[nameof(Code.Movzx_r32_rm8)], code[nameof(Code.Movzx_r64_rm8)] }, + new object[] { Gv_Ew, code[nameof(Code.Movzx_r16_rm16)], code[nameof(Code.Movzx_r32_rm16)], code[nameof(Code.Movzx_r64_rm16)] }, // B8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { Options3, + new object[] { MandatoryPrefix4, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Popcnt_r16_rm16)], codeEnum[nameof(Code.Popcnt_r32_rm32)], codeEnum[nameof(Code.Popcnt_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Popcnt_r16_rm16)], code[nameof(Code.Popcnt_r32_rm32)], code[nameof(Code.Popcnt_r64_rm64)] }, invalid, 0x1C, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jdisp)], codeEnum[nameof(Code.Jmpe_disp16)], codeEnum[nameof(Code.Jmpe_disp32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], + new object[] { Bitness, + new object[] { Jdisp, code[nameof(Code.Jmpe_disp16)], code[nameof(Code.Jmpe_disp32)] }, + new object[] { MandatoryPrefix4, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Popcnt_r16_rm16)], codeEnum[nameof(Code.Popcnt_r32_rm32)], codeEnum[nameof(Code.Popcnt_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Popcnt_r16_rm16)], code[nameof(Code.Popcnt_r32_rm32)], code[nameof(Code.Popcnt_r64_rm64)] }, invalid, 0x1C, }, - }, decoderOptionsEnum[nameof(DecoderOptions.Jmpe)] + }, options[nameof(DecoderOptions.Jmpe)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Ud1_r16_rm16)], codeEnum[nameof(Code.Ud1_r32_rm32)], codeEnum[nameof(Code.Ud1_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0FBA" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Btc_rm16_r16)], codeEnum[nameof(Code.Btc_rm32_r32)], codeEnum[nameof(Code.Btc_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsf_r16_rm16)], codeEnum[nameof(Code.Bsf_r32_rm32)], codeEnum[nameof(Code.Bsf_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsf_r16_rm16)], codeEnum[nameof(Code.Bsf_r32_rm32)], codeEnum[nameof(Code.Bsf_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Tzcnt_r16_rm16)], codeEnum[nameof(Code.Tzcnt_r32_rm32)], codeEnum[nameof(Code.Tzcnt_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsf_r16_rm16)], codeEnum[nameof(Code.Bsf_r32_rm32)], codeEnum[nameof(Code.Bsf_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Ud1_r16_rm16)], code[nameof(Code.Ud1_r32_rm32)], code[nameof(Code.Ud1_r64_rm64)] }, + new object[] { Group, "handlers_Grp_0FBA" }, + new object[] { Ev_Gv_4, code[nameof(Code.Btc_rm16_r16)], code[nameof(Code.Btc_rm32_r32)], code[nameof(Code.Btc_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Options3, + new object[] { MandatoryPrefix4, + new object[] { Gv_Ev_3a, code[nameof(Code.Bsf_r16_rm16)], code[nameof(Code.Bsf_r32_rm32)], code[nameof(Code.Bsf_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Bsf_r16_rm16)], code[nameof(Code.Bsf_r32_rm32)], code[nameof(Code.Bsf_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Tzcnt_r16_rm16)], code[nameof(Code.Tzcnt_r32_rm32)], code[nameof(Code.Tzcnt_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Bsf_r16_rm16)], code[nameof(Code.Bsf_r32_rm32)], code[nameof(Code.Bsf_r64_rm64)] }, 0x14, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsf_r16_rm16)], codeEnum[nameof(Code.Bsf_r32_rm32)], codeEnum[nameof(Code.Bsf_r64_rm64)] }, decoderOptionsEnum[nameof(DecoderOptions.NoMPFX_0FBC)] + new object[] { Gv_Ev_3a, code[nameof(Code.Bsf_r16_rm16)], code[nameof(Code.Bsf_r32_rm32)], code[nameof(Code.Bsf_r64_rm64)] }, options[nameof(DecoderOptions.NoMPFX_0FBC)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix4)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsr_r16_rm16)], codeEnum[nameof(Code.Bsr_r32_rm32)], codeEnum[nameof(Code.Bsr_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsr_r16_rm16)], codeEnum[nameof(Code.Bsr_r32_rm32)], codeEnum[nameof(Code.Bsr_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Lzcnt_r16_rm16)], codeEnum[nameof(Code.Lzcnt_r32_rm32)], codeEnum[nameof(Code.Lzcnt_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsr_r16_rm16)], codeEnum[nameof(Code.Bsr_r32_rm32)], codeEnum[nameof(Code.Bsr_r64_rm64)] }, + new object[] { Options3, + new object[] { MandatoryPrefix4, + new object[] { Gv_Ev_3a, code[nameof(Code.Bsr_r16_rm16)], code[nameof(Code.Bsr_r32_rm32)], code[nameof(Code.Bsr_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Bsr_r16_rm16)], code[nameof(Code.Bsr_r32_rm32)], code[nameof(Code.Bsr_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Lzcnt_r16_rm16)], code[nameof(Code.Lzcnt_r32_rm32)], code[nameof(Code.Lzcnt_r64_rm64)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Bsr_r16_rm16)], code[nameof(Code.Bsr_r32_rm32)], code[nameof(Code.Bsr_r64_rm64)] }, 0x14, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Bsr_r16_rm16)], codeEnum[nameof(Code.Bsr_r32_rm32)], codeEnum[nameof(Code.Bsr_r64_rm64)] }, decoderOptionsEnum[nameof(DecoderOptions.NoMPFX_0FBD)] + new object[] { Gv_Ev_3a, code[nameof(Code.Bsr_r16_rm16)], code[nameof(Code.Bsr_r32_rm32)], code[nameof(Code.Bsr_r64_rm64)] }, options[nameof(DecoderOptions.NoMPFX_0FBD)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Eb)], codeEnum[nameof(Code.Movsx_r16_rm8)], codeEnum[nameof(Code.Movsx_r32_rm8)], codeEnum[nameof(Code.Movsx_r64_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ew)], codeEnum[nameof(Code.Movsx_r16_rm16)], codeEnum[nameof(Code.Movsx_r32_rm16)], codeEnum[nameof(Code.Movsx_r64_rm16)] }, + new object[] { Gv_Eb, code[nameof(Code.Movsx_r16_rm8)], code[nameof(Code.Movsx_r32_rm8)], code[nameof(Code.Movsx_r64_rm8)] }, + new object[] { Gv_Ew, code[nameof(Code.Movsx_r16_rm16)], code[nameof(Code.Movsx_r32_rm16)], code[nameof(Code.Movsx_r64_rm16)] }, // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Xadd_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Xadd_rm16_r16)], codeEnum[nameof(Code.Xadd_rm32_r32)], codeEnum[nameof(Code.Xadd_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cmpps_xmm_xmmm128_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cmppd_xmm_xmmm128_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cmpss_xmm_xmmm32_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cmpsd_xmm_xmmm64_imm8)] } + new object[] { Eb_Gb_2, code[nameof(Code.Xadd_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Xadd_rm16_r16)], code[nameof(Code.Xadd_rm32_r32)], code[nameof(Code.Xadd_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { MandatoryPrefix, + new object[] { VWIb_2, xmm0, code[nameof(Code.Cmpps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Cmppd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Cmpss_xmm_xmmm32_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Cmpsd_xmm_xmmm64_imm8)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Mv_Gv_REXW)], codeEnum[nameof(Code.Movnti_m32_r32)], codeEnum[nameof(Code.Movnti_m64_r64)] }, + new object[] { MandatoryPrefix, + new object[] { Mv_Gv_REXW, code[nameof(Code.Movnti_m32_r32)], code[nameof(Code.Movnti_m64_r64)] }, invalid, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Ev_Ib)], codeEnum[nameof(Code.Pinsrw_mm_r32m16_imm8)], codeEnum[nameof(Code.Pinsrw_mm_r64m16_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VX_E_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pinsrw_xmm_r32m16_imm8)], codeEnum[nameof(Code.Pinsrw_xmm_r64m16_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { P_Ev_Ib, code[nameof(Code.Pinsrw_mm_r32m16_imm8)], code[nameof(Code.Pinsrw_mm_r64m16_imm8)] }, + new object[] { VX_E_Ib, xmm0, code[nameof(Code.Pinsrw_xmm_r32m16_imm8)], code[nameof(Code.Pinsrw_xmm_r64m16_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_N_Ib_REX)], codeEnum[nameof(Code.Pextrw_r32_mm_imm8)], codeEnum[nameof(Code.Pextrw_r64_mm_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RM)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_Ib_REX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pextrw_r32_xmm_imm8)], codeEnum[nameof(Code.Pextrw_r64_xmm_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { Gv_N_Ib_REX, code[nameof(Code.Pextrw_r32_mm_imm8)], code[nameof(Code.Pextrw_r64_mm_imm8)] }, + new object[] { RM, + new object[] { Gv_Ev_Ib_REX, xmm0, code[nameof(Code.Pextrw_r32_xmm_imm8)], code[nameof(Code.Pextrw_r64_xmm_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Shufps_xmm_xmmm128_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Shufpd_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix, + new object[] { VWIb_2, xmm0, code[nameof(Code.Shufps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, xmm0, code[nameof(Code.Shufpd_xmm_xmmm128_imm8)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_0FC7" }, + new object[] { Group, "handlers_Grp_0FC7" }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 0 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 1 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 2 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 3 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 4 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 5 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 6 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Bswap_r16)], 7 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 0 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 1 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 2 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 3 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 4 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 5 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 6 }, + new object[] { SimpleReg, code[nameof(Code.Bswap_r16)], 7 }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Addsubpd_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Addsubpd_xmm_xmmm128)] }, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Addsubps_xmm_xmmm128)] } + new object[] { VW_2, xmm0, code[nameof(Code.Addsubps_xmm_xmmm128)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psrlw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrlw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psrlw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psrlw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psrld_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrld_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psrld_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psrld_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psrlq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrlq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psrlq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psrlq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmullw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmullw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmullw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmullw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movq_xmmm64_xmm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VN)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movq2dq_xmm_mm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_R)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movdq2q_mm_xmm)] } + new object[] { WV, xmm0, code[nameof(Code.Movq_xmmm64_xmm)] }, + new object[] { VN, xmm0, code[nameof(Code.Movq2dq_xmm_mm)] }, + new object[] { P_R, xmm0, code[nameof(Code.Movdq2q_mm_xmm)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_N)], codeEnum[nameof(Code.Pmovmskb_r32_mm)], codeEnum[nameof(Code.Pmovmskb_r64_mm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmovmskb_r32_xmm)], codeEnum[nameof(Code.Pmovmskb_r64_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { Gv_N, code[nameof(Code.Pmovmskb_r32_mm)], code[nameof(Code.Pmovmskb_r64_mm)] }, + new object[] { Gv_RX, xmm0, code[nameof(Code.Pmovmskb_r32_xmm)], code[nameof(Code.Pmovmskb_r64_xmm)] }, invalid, invalid, }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubusb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubusb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubusb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubusb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubusw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubusw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubusw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubusw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pminub_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pminub_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pminub_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pminub_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pand_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pand_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pand_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pand_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddusb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddusb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddusb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddusb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddusw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddusw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddusw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddusw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmaxub_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaxub_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmaxub_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaxub_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pandn_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pandn_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pandn_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pandn_xmm_xmmm128)] }, invalid, invalid, }, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pavgb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pavgb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pavgb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pavgb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psraw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psraw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psraw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psraw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psrad_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psrad_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psrad_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psrad_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pavgw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pavgw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pavgw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pavgw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmulhuw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmulhuw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmulhuw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmulhuw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmulhw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmulhw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmulhw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmulhw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvttpd2dq_xmm_xmmm128)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtdq2pd_xmm_xmmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Cvtpd2dq_xmm_xmmm128)] } + new object[] { VW_2, xmm0, code[nameof(Code.Cvttpd2dq_xmm_xmmm128)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtdq2pd_xmm_xmmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Cvtpd2dq_xmm_xmmm128)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MP)], codeEnum[nameof(Code.Movntq_m64_mm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Movntdq_m128_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { MP, code[nameof(Code.Movntq_m64_mm)] }, + new object[] { MV, xmm0, code[nameof(Code.Movntdq_m128_xmm)] }, invalid, invalid, }, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubsb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubsb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubsb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubsb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pminsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pminsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pminsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pminsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Por_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Por_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Por_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Por_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddsb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddsb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddsb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddsb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmaxsw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaxsw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmaxsw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaxsw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pxor_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pxor_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pxor_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pxor_xmm_xmmm128)] }, invalid, invalid, }, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], + new object[] { MandatoryPrefix, invalid, invalid, invalid, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Lddqu_xmm_m128)] } + new object[] { VM, xmm0, code[nameof(Code.Lddqu_xmm_m128)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psllw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psllw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psllw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psllw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pslld_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pslld_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pslld_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pslld_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psllq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psllq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psllq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psllq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmuludq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmuludq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmuludq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmuludq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Pmaddwd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Pmaddwd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Pmaddwd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Pmaddwd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psadbw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psadbw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psadbw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psadbw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.rDI_P_N)], codeEnum[nameof(Code.Maskmovq_rDI_mm_mm)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.rDI_VX_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Maskmovdqu_rDI_xmm_xmm)] }, + new object[] { MandatoryPrefix, + new object[] { rDI_P_N, code[nameof(Code.Maskmovq_rDI_mm_mm)] }, + new object[] { rDI_VX_RX, xmm0, code[nameof(Code.Maskmovdqu_rDI_xmm_xmm)] }, invalid, invalid, }, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Psubq_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Psubq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Psubq_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Psubq_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddb_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddb_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddb_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddb_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddw_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddw_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddw_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MandatoryPrefix)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.P_Q)], codeEnum[nameof(Code.Paddd_mm_mmm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.Paddd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix, + new object[] { P_Q, code[nameof(Code.Paddd_mm_mmm64)] }, + new object[] { VW_2, xmm0, code[nameof(Code.Paddd_xmm_xmmm128)] }, invalid, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Ud0_r16_rm16)], codeEnum[nameof(Code.Ud0_r32_rm32)], codeEnum[nameof(Code.Ud0_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Ud0)] }, decoderOptionsEnum[nameof(DecoderOptions.AMD)] + new object[] { Options3, + new object[] { Gv_Ev_3a, code[nameof(Code.Ud0_r16_rm16)], code[nameof(Code.Ud0_r32_rm32)], code[nameof(Code.Ud0_r64_rm64)] }, + new object[] { Simple, code[nameof(Code.Ud0)] }, options[nameof(DecoderOptions.AMD)] }, }), (Handlers_MAP0, new object[0x100] { // 00 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Add_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Add_rm16_r16)], codeEnum[nameof(Code.Add_rm32_r32)], codeEnum[nameof(Code.Add_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Add_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Add_r16_rm16)], codeEnum[nameof(Code.Add_r32_rm32)], codeEnum[nameof(Code.Add_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Add_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Add_AX_imm16)], codeEnum[nameof(Code.Add_EAX_imm32)], codeEnum[nameof(Code.Add_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Pushw_ES)], codeEnum[nameof(Code.Pushd_ES)], registerEnum[nameof(Register.ES)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Add_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Add_rm16_r16)], code[nameof(Code.Add_rm32_r32)], code[nameof(Code.Add_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.Add_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Add_r16_rm16)], code[nameof(Code.Add_r32_rm32)], code[nameof(Code.Add_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Add_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Add_AX_imm16)], code[nameof(Code.Add_EAX_imm32)], code[nameof(Code.Add_RAX_imm32)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Pushw_ES)], code[nameof(Code.Pushd_ES)], es }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Popw_ES)], codeEnum[nameof(Code.Popd_ES)], registerEnum[nameof(Register.ES)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Popw_ES)], code[nameof(Code.Popd_ES)], es }, invalid, }, // 08 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Or_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Or_rm16_r16)], codeEnum[nameof(Code.Or_rm32_r32)], codeEnum[nameof(Code.Or_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Or_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Or_r16_rm16)], codeEnum[nameof(Code.Or_r32_rm32)], codeEnum[nameof(Code.Or_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Or_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Or_AX_imm16)], codeEnum[nameof(Code.Or_EAX_imm32)], codeEnum[nameof(Code.Or_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Pushw_CS)], codeEnum[nameof(Code.Pushd_CS)], registerEnum[nameof(Register.CS)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Or_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Or_rm16_r16)], code[nameof(Code.Or_rm32_r32)], code[nameof(Code.Or_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.Or_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Or_r16_rm16)], code[nameof(Code.Or_r32_rm32)], code[nameof(Code.Or_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Or_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Or_AX_imm16)], code[nameof(Code.Or_EAX_imm32)], code[nameof(Code.Or_RAX_imm32)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Pushw_CS)], code[nameof(Code.Pushd_CS)], cs }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.AnotherTable)], "Handlers_0F" }, + new object[] { AnotherTable, "Handlers_0F" }, // 10 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Adc_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Adc_rm16_r16)], codeEnum[nameof(Code.Adc_rm32_r32)], codeEnum[nameof(Code.Adc_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Adc_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Adc_r16_rm16)], codeEnum[nameof(Code.Adc_r32_rm32)], codeEnum[nameof(Code.Adc_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Adc_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Adc_AX_imm16)], codeEnum[nameof(Code.Adc_EAX_imm32)], codeEnum[nameof(Code.Adc_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Pushw_SS)], codeEnum[nameof(Code.Pushd_SS)], registerEnum[nameof(Register.SS)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Adc_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Adc_rm16_r16)], code[nameof(Code.Adc_rm32_r32)], code[nameof(Code.Adc_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.Adc_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Adc_r16_rm16)], code[nameof(Code.Adc_r32_rm32)], code[nameof(Code.Adc_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Adc_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Adc_AX_imm16)], code[nameof(Code.Adc_EAX_imm32)], code[nameof(Code.Adc_RAX_imm32)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Pushw_SS)], code[nameof(Code.Pushd_SS)], ss }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Popw_SS)], codeEnum[nameof(Code.Popd_SS)], registerEnum[nameof(Register.SS)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Popw_SS)], code[nameof(Code.Popd_SS)], ss }, invalid, }, // 18 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Sbb_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Sbb_rm16_r16)], codeEnum[nameof(Code.Sbb_rm32_r32)], codeEnum[nameof(Code.Sbb_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Sbb_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Sbb_r16_rm16)], codeEnum[nameof(Code.Sbb_r32_rm32)], codeEnum[nameof(Code.Sbb_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Sbb_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Sbb_AX_imm16)], codeEnum[nameof(Code.Sbb_EAX_imm32)], codeEnum[nameof(Code.Sbb_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Pushw_DS)], codeEnum[nameof(Code.Pushd_DS)], registerEnum[nameof(Register.DS)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Sbb_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Sbb_rm16_r16)], code[nameof(Code.Sbb_rm32_r32)], code[nameof(Code.Sbb_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.Sbb_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Sbb_r16_rm16)], code[nameof(Code.Sbb_r32_rm32)], code[nameof(Code.Sbb_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Sbb_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Sbb_AX_imm16)], code[nameof(Code.Sbb_EAX_imm32)], code[nameof(Code.Sbb_RAX_imm32)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Pushw_DS)], code[nameof(Code.Pushd_DS)], ds }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushOpSizeReg_4b)], codeEnum[nameof(Code.Popw_DS)], codeEnum[nameof(Code.Popd_DS)], registerEnum[nameof(Register.DS)] }, + new object[] { Bitness, + new object[] { PushOpSizeReg_4b, code[nameof(Code.Popw_DS)], code[nameof(Code.Popd_DS)], ds }, invalid, }, // 20 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.And_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.And_rm16_r16)], codeEnum[nameof(Code.And_rm32_r32)], codeEnum[nameof(Code.And_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.And_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.And_r16_rm16)], codeEnum[nameof(Code.And_r32_rm32)], codeEnum[nameof(Code.And_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.And_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.And_AX_imm16)], codeEnum[nameof(Code.And_EAX_imm32)], codeEnum[nameof(Code.And_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixEsCsSsDs)], registerEnum[nameof(Register.ES)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Daa)] }, + new object[] { Eb_Gb_2, code[nameof(Code.And_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.And_rm16_r16)], code[nameof(Code.And_rm32_r32)], code[nameof(Code.And_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.And_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.And_r16_rm16)], code[nameof(Code.And_r32_rm32)], code[nameof(Code.And_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.And_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.And_AX_imm16)], code[nameof(Code.And_EAX_imm32)], code[nameof(Code.And_RAX_imm32)] }, + new object[] { PrefixEsCsSsDs, es }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Daa)] }, invalid, }, // 28 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Sub_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Sub_rm16_r16)], codeEnum[nameof(Code.Sub_rm32_r32)], codeEnum[nameof(Code.Sub_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Sub_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Sub_r16_rm16)], codeEnum[nameof(Code.Sub_r32_rm32)], codeEnum[nameof(Code.Sub_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Sub_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Sub_AX_imm16)], codeEnum[nameof(Code.Sub_EAX_imm32)], codeEnum[nameof(Code.Sub_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixEsCsSsDs)], registerEnum[nameof(Register.CS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Das)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Sub_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Sub_rm16_r16)], code[nameof(Code.Sub_rm32_r32)], code[nameof(Code.Sub_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.Sub_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Sub_r16_rm16)], code[nameof(Code.Sub_r32_rm32)], code[nameof(Code.Sub_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Sub_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Sub_AX_imm16)], code[nameof(Code.Sub_EAX_imm32)], code[nameof(Code.Sub_RAX_imm32)] }, + new object[] { PrefixEsCsSsDs, cs }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Das)] }, invalid, }, // 30 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Xor_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Xor_rm16_r16)], codeEnum[nameof(Code.Xor_rm32_r32)], codeEnum[nameof(Code.Xor_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Xor_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Xor_r16_rm16)], codeEnum[nameof(Code.Xor_r32_rm32)], codeEnum[nameof(Code.Xor_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Xor_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Xor_AX_imm16)], codeEnum[nameof(Code.Xor_EAX_imm32)], codeEnum[nameof(Code.Xor_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixEsCsSsDs)], registerEnum[nameof(Register.SS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Aaa)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Xor_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Xor_rm16_r16)], code[nameof(Code.Xor_rm32_r32)], code[nameof(Code.Xor_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.Lock)) }, + new object[] { Gb_Eb, code[nameof(Code.Xor_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Xor_r16_rm16)], code[nameof(Code.Xor_r32_rm32)], code[nameof(Code.Xor_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Xor_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Xor_AX_imm16)], code[nameof(Code.Xor_EAX_imm32)], code[nameof(Code.Xor_RAX_imm32)] }, + new object[] { PrefixEsCsSsDs, ss }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Aaa)] }, invalid, }, // 38 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_1)], codeEnum[nameof(Code.Cmp_rm8_r8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Cmp_rm16_r16)], codeEnum[nameof(Code.Cmp_rm32_r32)], codeEnum[nameof(Code.Cmp_rm64_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Cmp_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Cmp_r16_rm16)], codeEnum[nameof(Code.Cmp_r32_rm32)], codeEnum[nameof(Code.Cmp_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Cmp_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Cmp_AX_imm16)], codeEnum[nameof(Code.Cmp_EAX_imm32)], codeEnum[nameof(Code.Cmp_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixEsCsSsDs)], registerEnum[nameof(Register.DS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Aas)] }, + new object[] { Eb_Gb_1, code[nameof(Code.Cmp_rm8_r8)] }, + new object[] { Ev_Gv_3a, code[nameof(Code.Cmp_rm16_r16)], code[nameof(Code.Cmp_rm32_r32)], code[nameof(Code.Cmp_rm64_r64)] }, + new object[] { Gb_Eb, code[nameof(Code.Cmp_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Cmp_r16_rm16)], code[nameof(Code.Cmp_r32_rm32)], code[nameof(Code.Cmp_r64_rm64)] }, + new object[] { RegIb, code[nameof(Code.Cmp_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Cmp_AX_imm16)], code[nameof(Code.Cmp_EAX_imm32)], code[nameof(Code.Cmp_RAX_imm32)] }, + new object[] { PrefixEsCsSsDs, ds }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Aas)] }, invalid, }, // 40 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 0 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 0 }, 0, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 1 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 1 }, 1, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 2 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 2 }, 2, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 3 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 3 }, 3, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 4 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 4 }, 4, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 5 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 5 }, 5, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 6 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 6 }, 6, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Inc_r16)], 7 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Inc_r16)], 7 }, 7, }, // 48 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 0 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 0 }, 8, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 1 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 1 }, 9, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 2 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 2 }, 0xA, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 3 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 3 }, 0xB, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 4 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 4 }, 0xC, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 5 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 5 }, 0xD, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 6 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 6 }, 0xE, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixREX)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.SimpleReg)], codeEnum[nameof(Code.Dec_r16)], 7 }, + new object[] { PrefixREX, + new object[] { SimpleReg, code[nameof(Code.Dec_r16)], 7 }, 0xF, }, // 50 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 0, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 1, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 2, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 3, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 4, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 5, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 6, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 7, codeEnum[nameof(Code.Push_r16)], codeEnum[nameof(Code.Push_r32)], codeEnum[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 0, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 1, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 2, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 3, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 4, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 5, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 6, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, + new object[] { PushSimpleReg, 7, code[nameof(Code.Push_r16)], code[nameof(Code.Push_r32)], code[nameof(Code.Push_r64)] }, // 58 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 0, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 1, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 2, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 3, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 4, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 5, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 6, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimpleReg)], 7, codeEnum[nameof(Code.Pop_r16)], codeEnum[nameof(Code.Pop_r32)], codeEnum[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 0, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 1, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 2, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 3, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 4, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 5, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 6, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, + new object[] { PushSimpleReg, 7, code[nameof(Code.Pop_r16)], code[nameof(Code.Pop_r32)], code[nameof(Code.Pop_r64)] }, // 60 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3b)], codeEnum[nameof(Code.Pushaw)], codeEnum[nameof(Code.Pushad)], codeEnum[nameof(Code.Pushad)] }, + new object[] { Bitness, + new object[] { Simple2_3b, code[nameof(Code.Pushaw)], code[nameof(Code.Pushad)], code[nameof(Code.Pushad)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3b)], codeEnum[nameof(Code.Popaw)], codeEnum[nameof(Code.Popad)], codeEnum[nameof(Code.Popad)] }, + new object[] { Bitness, + new object[] { Simple2_3b, code[nameof(Code.Popaw)], code[nameof(Code.Popad)], code[nameof(Code.Popad)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.EVEX)], new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ma)], codeEnum[nameof(Code.Bound_r16_m1616)], codeEnum[nameof(Code.Bound_r32_m3232)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RvMw_Gw)], codeEnum[nameof(Code.Arpl_rm16_r16)], codeEnum[nameof(Code.Arpl_r32m16_r32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev2)], codeEnum[nameof(Code.Movsxd_r16_rm16)], codeEnum[nameof(Code.Movsxd_r32_rm32)], codeEnum[nameof(Code.Movsxd_r64_rm32)] }, + new object[] { EVEX, new object[] { Gv_Ma, code[nameof(Code.Bound_r16_m1616)], code[nameof(Code.Bound_r32_m3232)] } }, + new object[] { Bitness, + new object[] { RvMw_Gw, code[nameof(Code.Arpl_rm16_r16)], code[nameof(Code.Arpl_r32m16_r32)] }, + new object[] { Gv_Ev2, code[nameof(Code.Movsxd_r16_rm16)], code[nameof(Code.Movsxd_r32_rm32)], code[nameof(Code.Movsxd_r64_rm32)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixFsGs)], registerEnum[nameof(Register.FS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixFsGs)], registerEnum[nameof(Register.GS)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Prefix66)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Prefix67)] }, + new object[] { PrefixFsGs, fs }, + new object[] { PrefixFsGs, gs }, + new object[] { Prefix66 }, + new object[] { Prefix67 }, // 68 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushIz)], codeEnum[nameof(Code.Push_imm16)], codeEnum[nameof(Code.Pushd_imm32)], codeEnum[nameof(Code.Pushq_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_Iz)], codeEnum[nameof(Code.Imul_r16_rm16_imm16)], codeEnum[nameof(Code.Imul_r32_rm32_imm32)], codeEnum[nameof(Code.Imul_r64_rm64_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushIb2)], codeEnum[nameof(Code.Pushw_imm8)], codeEnum[nameof(Code.Pushd_imm8)], codeEnum[nameof(Code.Pushq_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_Ib)], codeEnum[nameof(Code.Imul_r16_rm16_imm8)], codeEnum[nameof(Code.Imul_r32_rm32_imm8)], codeEnum[nameof(Code.Imul_r64_rm64_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Yb_Reg)], codeEnum[nameof(Code.Insb_m8_DX)], registerEnum[nameof(Register.DX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Yv_Reg2)], codeEnum[nameof(Code.Insw_m16_DX)], codeEnum[nameof(Code.Insd_m32_DX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Xb)], codeEnum[nameof(Code.Outsb_DX_m8)], registerEnum[nameof(Register.DX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Xv2)], codeEnum[nameof(Code.Outsw_DX_m16)], codeEnum[nameof(Code.Outsd_DX_m32)] }, + new object[] { PushIz, code[nameof(Code.Push_imm16)], code[nameof(Code.Pushd_imm32)], code[nameof(Code.Pushq_imm32)] }, + new object[] { Gv_Ev_Iz, code[nameof(Code.Imul_r16_rm16_imm16)], code[nameof(Code.Imul_r32_rm32_imm32)], code[nameof(Code.Imul_r64_rm64_imm32)] }, + new object[] { PushIb2, code[nameof(Code.Pushw_imm8)], code[nameof(Code.Pushd_imm8)], code[nameof(Code.Pushq_imm8)] }, + new object[] { Gv_Ev_Ib, code[nameof(Code.Imul_r16_rm16_imm8)], code[nameof(Code.Imul_r32_rm32_imm8)], code[nameof(Code.Imul_r64_rm64_imm8)] }, + new object[] { Yb_Reg, code[nameof(Code.Insb_m8_DX)], dx }, + new object[] { Yv_Reg2, code[nameof(Code.Insw_m16_DX)], code[nameof(Code.Insd_m32_DX)] }, + new object[] { Reg_Xb, code[nameof(Code.Outsb_DX_m8)], dx }, + new object[] { Reg_Xv2, code[nameof(Code.Outsw_DX_m16)], code[nameof(Code.Outsd_DX_m32)] }, // 70 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jo_rel8_16)], codeEnum[nameof(Code.Jo_rel8_32)], codeEnum[nameof(Code.Jo_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jno_rel8_16)], codeEnum[nameof(Code.Jno_rel8_32)], codeEnum[nameof(Code.Jno_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jb_rel8_16)], codeEnum[nameof(Code.Jb_rel8_32)], codeEnum[nameof(Code.Jb_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jae_rel8_16)], codeEnum[nameof(Code.Jae_rel8_32)], codeEnum[nameof(Code.Jae_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Je_rel8_16)], codeEnum[nameof(Code.Je_rel8_32)], codeEnum[nameof(Code.Je_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jne_rel8_16)], codeEnum[nameof(Code.Jne_rel8_32)], codeEnum[nameof(Code.Jne_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jbe_rel8_16)], codeEnum[nameof(Code.Jbe_rel8_32)], codeEnum[nameof(Code.Jbe_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Ja_rel8_16)], codeEnum[nameof(Code.Ja_rel8_32)], codeEnum[nameof(Code.Ja_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jo_rel8_16)], code[nameof(Code.Jo_rel8_32)], code[nameof(Code.Jo_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jno_rel8_16)], code[nameof(Code.Jno_rel8_32)], code[nameof(Code.Jno_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jb_rel8_16)], code[nameof(Code.Jb_rel8_32)], code[nameof(Code.Jb_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jae_rel8_16)], code[nameof(Code.Jae_rel8_32)], code[nameof(Code.Jae_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Je_rel8_16)], code[nameof(Code.Je_rel8_32)], code[nameof(Code.Je_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jne_rel8_16)], code[nameof(Code.Jne_rel8_32)], code[nameof(Code.Jne_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jbe_rel8_16)], code[nameof(Code.Jbe_rel8_32)], code[nameof(Code.Jbe_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Ja_rel8_16)], code[nameof(Code.Ja_rel8_32)], code[nameof(Code.Ja_rel8_64)] }, // 78 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Js_rel8_16)], codeEnum[nameof(Code.Js_rel8_32)], codeEnum[nameof(Code.Js_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jns_rel8_16)], codeEnum[nameof(Code.Jns_rel8_32)], codeEnum[nameof(Code.Jns_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jp_rel8_16)], codeEnum[nameof(Code.Jp_rel8_32)], codeEnum[nameof(Code.Jp_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jnp_rel8_16)], codeEnum[nameof(Code.Jnp_rel8_32)], codeEnum[nameof(Code.Jnp_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jl_rel8_16)], codeEnum[nameof(Code.Jl_rel8_32)], codeEnum[nameof(Code.Jl_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jge_rel8_16)], codeEnum[nameof(Code.Jge_rel8_32)], codeEnum[nameof(Code.Jge_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jle_rel8_16)], codeEnum[nameof(Code.Jle_rel8_32)], codeEnum[nameof(Code.Jle_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jg_rel8_16)], codeEnum[nameof(Code.Jg_rel8_32)], codeEnum[nameof(Code.Jg_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Js_rel8_16)], code[nameof(Code.Js_rel8_32)], code[nameof(Code.Js_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jns_rel8_16)], code[nameof(Code.Jns_rel8_32)], code[nameof(Code.Jns_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jp_rel8_16)], code[nameof(Code.Jp_rel8_32)], code[nameof(Code.Jp_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jnp_rel8_16)], code[nameof(Code.Jnp_rel8_32)], code[nameof(Code.Jnp_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jl_rel8_16)], code[nameof(Code.Jl_rel8_32)], code[nameof(Code.Jl_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jge_rel8_16)], code[nameof(Code.Jge_rel8_32)], code[nameof(Code.Jge_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jle_rel8_16)], code[nameof(Code.Jle_rel8_32)], code[nameof(Code.Jle_rel8_64)] }, + new object[] { Jb, code[nameof(Code.Jg_rel8_16)], code[nameof(Code.Jg_rel8_32)], code[nameof(Code.Jg_rel8_64)] }, // 80 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_80" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_81" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_82" }, + new object[] { Group, "handlers_Grp_80" }, + new object[] { Group, "handlers_Grp_81" }, + new object[] { Bitness, + new object[] { Group, "handlers_Grp_82" }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_83" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_1)], codeEnum[nameof(Code.Test_rm8_r8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_3a)], codeEnum[nameof(Code.Test_rm16_r16)], codeEnum[nameof(Code.Test_rm32_r32)], codeEnum[nameof(Code.Test_rm64_r64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Xchg_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock), nameof(HandlerFlags.Lock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Xchg_rm16_r16)], codeEnum[nameof(Code.Xchg_rm32_r32)], codeEnum[nameof(Code.Xchg_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock), nameof(HandlerFlags.Lock)) }, + new object[] { Group, "handlers_Grp_83" }, + new object[] { Eb_Gb_1, code[nameof(Code.Test_rm8_r8)] }, + new object[] { Ev_Gv_3a, code[nameof(Code.Test_rm16_r16)], code[nameof(Code.Test_rm32_r32)], code[nameof(Code.Test_rm64_r64)] }, + new object[] { Eb_Gb_2, code[nameof(Code.Xchg_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock), nameof(HandlerFlags.Lock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Xchg_rm16_r16)], code[nameof(Code.Xchg_rm32_r32)], code[nameof(Code.Xchg_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xacquire), nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock), nameof(HandlerFlags.Lock)) }, // 88 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Eb_Gb_2)], codeEnum[nameof(Code.Mov_rm8_r8)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Gv_4)], codeEnum[nameof(Code.Mov_rm16_r16)], codeEnum[nameof(Code.Mov_rm32_r32)], codeEnum[nameof(Code.Mov_rm64_r64)], new OrEnumValue(handlerFlagsEnum, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gb_Eb)], codeEnum[nameof(Code.Mov_r8_rm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Ev_3a)], codeEnum[nameof(Code.Mov_r16_rm16)], codeEnum[nameof(Code.Mov_r32_rm32)], codeEnum[nameof(Code.Mov_r64_rm64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ev_Sw)], codeEnum[nameof(Code.Mov_rm16_Sreg)], codeEnum[nameof(Code.Mov_r32m16_Sreg)], codeEnum[nameof(Code.Mov_r64m16_Sreg)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_M)], codeEnum[nameof(Code.Lea_r16_m)], codeEnum[nameof(Code.Lea_r32_m)], codeEnum[nameof(Code.Lea_r64_m)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Sw_Ev)], codeEnum[nameof(Code.Mov_Sreg_rm16)], codeEnum[nameof(Code.Mov_Sreg_r32m16)], codeEnum[nameof(Code.Mov_Sreg_r64m16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.XOP)], new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_8F" } }, + new object[] { Eb_Gb_2, code[nameof(Code.Mov_rm8_r8)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, + new object[] { Ev_Gv_4, code[nameof(Code.Mov_rm16_r16)], code[nameof(Code.Mov_rm32_r32)], code[nameof(Code.Mov_rm64_r64)], new OrEnumValue(handlerFlags, nameof(HandlerFlags.Xrelease), nameof(HandlerFlags.XacquireXreleaseNoLock)) }, + new object[] { Gb_Eb, code[nameof(Code.Mov_r8_rm8)] }, + new object[] { Gv_Ev_3a, code[nameof(Code.Mov_r16_rm16)], code[nameof(Code.Mov_r32_rm32)], code[nameof(Code.Mov_r64_rm64)] }, + new object[] { Ev_Sw, code[nameof(Code.Mov_rm16_Sreg)], code[nameof(Code.Mov_r32m16_Sreg)], code[nameof(Code.Mov_r64m16_Sreg)] }, + new object[] { Gv_M, code[nameof(Code.Lea_r16_m)], code[nameof(Code.Lea_r32_m)], code[nameof(Code.Lea_r64_m)] }, + new object[] { Sw_Ev, code[nameof(Code.Mov_Sreg_rm16)], code[nameof(Code.Mov_Sreg_r32m16)], code[nameof(Code.Mov_Sreg_r64m16)] }, + new object[] { XOP, new object[] { Group, "handlers_Grp_8F" } }, // 90 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 0 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 1 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 2 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 3 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 4 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 5 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 6 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xchg_Reg_rAX)], 7 }, + new object[] { Xchg_Reg_rAX, 0 }, + new object[] { Xchg_Reg_rAX, 1 }, + new object[] { Xchg_Reg_rAX, 2 }, + new object[] { Xchg_Reg_rAX, 3 }, + new object[] { Xchg_Reg_rAX, 4 }, + new object[] { Xchg_Reg_rAX, 5 }, + new object[] { Xchg_Reg_rAX, 6 }, + new object[] { Xchg_Reg_rAX, 7 }, // 98 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3a)], codeEnum[nameof(Code.Cbw)], codeEnum[nameof(Code.Cwde)], codeEnum[nameof(Code.Cdqe)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3a)], codeEnum[nameof(Code.Cwd)], codeEnum[nameof(Code.Cdq)], codeEnum[nameof(Code.Cqo)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ap)], codeEnum[nameof(Code.Call_ptr1616)], codeEnum[nameof(Code.Call_ptr1632)] }, + new object[] { Simple2_3a, code[nameof(Code.Cbw)], code[nameof(Code.Cwde)], code[nameof(Code.Cdqe)] }, + new object[] { Simple2_3a, code[nameof(Code.Cwd)], code[nameof(Code.Cdq)], code[nameof(Code.Cqo)] }, + new object[] { Bitness, + new object[] { Ap, code[nameof(Code.Call_ptr1616)], code[nameof(Code.Call_ptr1632)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Wait)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimple2)], codeEnum[nameof(Code.Pushfw)], codeEnum[nameof(Code.Pushfd)], codeEnum[nameof(Code.Pushfq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PushSimple2)], codeEnum[nameof(Code.Popfw)], codeEnum[nameof(Code.Popfd)], codeEnum[nameof(Code.Popfq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Sahf)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Sahf)] }, - invalid, decoderOptionsEnum[nameof(DecoderOptions.NoLahfSahf64)] + new object[] { Simple, code[nameof(Code.Wait)] }, + new object[] { PushSimple2, code[nameof(Code.Pushfw)], code[nameof(Code.Pushfd)], code[nameof(Code.Pushfq)] }, + new object[] { PushSimple2, code[nameof(Code.Popfw)], code[nameof(Code.Popfd)], code[nameof(Code.Popfq)] }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Sahf)] }, + new object[] { Options3, + new object[] { Simple, code[nameof(Code.Sahf)] }, + invalid, options[nameof(DecoderOptions.NoLahfSahf64)] }, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Lahf)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Options3)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Lahf)] }, - invalid, decoderOptionsEnum[nameof(DecoderOptions.NoLahfSahf64)] + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Lahf)] }, + new object[] { Options3, + new object[] { Simple, code[nameof(Code.Lahf)] }, + invalid, options[nameof(DecoderOptions.NoLahfSahf64)] }, }, // A0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Ob)], codeEnum[nameof(Code.Mov_AL_moffs8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Ov)], codeEnum[nameof(Code.Mov_AX_moffs16)], codeEnum[nameof(Code.Mov_EAX_moffs32)], codeEnum[nameof(Code.Mov_RAX_moffs64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ob_Reg)], codeEnum[nameof(Code.Mov_moffs8_AL)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ov_Reg)], codeEnum[nameof(Code.Mov_moffs16_AX)], codeEnum[nameof(Code.Mov_moffs32_EAX)], codeEnum[nameof(Code.Mov_moffs64_RAX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Yb_Xb)], codeEnum[nameof(Code.Movsb_m8_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Yv_Xv)], codeEnum[nameof(Code.Movsw_m16_m16)], codeEnum[nameof(Code.Movsd_m32_m32)], codeEnum[nameof(Code.Movsq_m64_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xb_Yb)], codeEnum[nameof(Code.Cmpsb_m8_m8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Xv_Yv)], codeEnum[nameof(Code.Cmpsw_m16_m16)], codeEnum[nameof(Code.Cmpsd_m32_m32)], codeEnum[nameof(Code.Cmpsq_m64_m64)] }, + new object[] { Reg_Ob, code[nameof(Code.Mov_AL_moffs8)], al }, + new object[] { Reg_Ov, code[nameof(Code.Mov_AX_moffs16)], code[nameof(Code.Mov_EAX_moffs32)], code[nameof(Code.Mov_RAX_moffs64)] }, + new object[] { Ob_Reg, code[nameof(Code.Mov_moffs8_AL)], al }, + new object[] { Ov_Reg, code[nameof(Code.Mov_moffs16_AX)], code[nameof(Code.Mov_moffs32_EAX)], code[nameof(Code.Mov_moffs64_RAX)] }, + new object[] { Yb_Xb, code[nameof(Code.Movsb_m8_m8)] }, + new object[] { Yv_Xv, code[nameof(Code.Movsw_m16_m16)], code[nameof(Code.Movsd_m32_m32)], code[nameof(Code.Movsq_m64_m64)] }, + new object[] { Xb_Yb, code[nameof(Code.Cmpsb_m8_m8)] }, + new object[] { Xv_Yv, code[nameof(Code.Cmpsw_m16_m16)], code[nameof(Code.Cmpsd_m32_m32)], code[nameof(Code.Cmpsq_m64_m64)] }, // A8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.Test_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Iz)], codeEnum[nameof(Code.Test_AX_imm16)], codeEnum[nameof(Code.Test_EAX_imm32)], codeEnum[nameof(Code.Test_RAX_imm32)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Yb_Reg)], codeEnum[nameof(Code.Stosb_m8_AL)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Yv_Reg)], codeEnum[nameof(Code.Stosw_m16_AX)], codeEnum[nameof(Code.Stosd_m32_EAX)], codeEnum[nameof(Code.Stosq_m64_RAX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Xb)], codeEnum[nameof(Code.Lodsb_AL_m8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Xv)], codeEnum[nameof(Code.Lodsw_AX_m16)], codeEnum[nameof(Code.Lodsd_EAX_m32)], codeEnum[nameof(Code.Lodsq_RAX_m64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Yb)], codeEnum[nameof(Code.Scasb_AL_m8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Yv)], codeEnum[nameof(Code.Scasw_AX_m16)], codeEnum[nameof(Code.Scasd_EAX_m32)], codeEnum[nameof(Code.Scasq_RAX_m64)] }, + new object[] { RegIb, code[nameof(Code.Test_AL_imm8)], al }, + new object[] { Reg_Iz, code[nameof(Code.Test_AX_imm16)], code[nameof(Code.Test_EAX_imm32)], code[nameof(Code.Test_RAX_imm32)] }, + new object[] { Yb_Reg, code[nameof(Code.Stosb_m8_AL)], al }, + new object[] { Yv_Reg, code[nameof(Code.Stosw_m16_AX)], code[nameof(Code.Stosd_m32_EAX)], code[nameof(Code.Stosq_m64_RAX)] }, + new object[] { Reg_Xb, code[nameof(Code.Lodsb_AL_m8)], al }, + new object[] { Reg_Xv, code[nameof(Code.Lodsw_AX_m16)], code[nameof(Code.Lodsd_EAX_m32)], code[nameof(Code.Lodsq_RAX_m64)] }, + new object[] { Reg_Yb, code[nameof(Code.Scasb_AL_m8)], al }, + new object[] { Reg_Yv, code[nameof(Code.Scasw_AX_m16)], code[nameof(Code.Scasd_EAX_m32)], code[nameof(Code.Scasq_RAX_m64)] }, // B0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 0 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 1 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 2 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 3 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 4 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 5 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 6 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb3)], 7 }, + new object[] { RegIb3, 0 }, + new object[] { RegIb3, 1 }, + new object[] { RegIb3, 2 }, + new object[] { RegIb3, 3 }, + new object[] { RegIb3, 4 }, + new object[] { RegIb3, 5 }, + new object[] { RegIb3, 6 }, + new object[] { RegIb3, 7 }, // B8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 0 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 1 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 2 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 3 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 4 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 5 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 6 }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIz2)], 7 }, + new object[] { RegIz2, 0 }, + new object[] { RegIz2, 1 }, + new object[] { RegIz2, 2 }, + new object[] { RegIz2, 3 }, + new object[] { RegIz2, 4 }, + new object[] { RegIz2, 5 }, + new object[] { RegIz2, 6 }, + new object[] { RegIz2, 7 }, // C0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_C0" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_C1" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.BranchIw)], codeEnum[nameof(Code.Retnw_imm16)], codeEnum[nameof(Code.Retnd_imm16)], codeEnum[nameof(Code.Retnq_imm16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.BranchSimple)], codeEnum[nameof(Code.Retnw)], codeEnum[nameof(Code.Retnd)], codeEnum[nameof(Code.Retnq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VEX3)], new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mp_2)], codeEnum[nameof(Code.Les_r16_m1616)], codeEnum[nameof(Code.Les_r32_m1632)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.VEX2)], new object[] { legacyEnum[nameof(OpCodeHandlerKind.Gv_Mp_2)], codeEnum[nameof(Code.Lds_r16_m1616)], codeEnum[nameof(Code.Lds_r32_m1632)] } }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_C6_lo", "handlers_Grp_C6_hi" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_C7_lo", "handlers_Grp_C7_hi" }, + new object[] { Group, "handlers_Grp_C0" }, + new object[] { Group, "handlers_Grp_C1" }, + new object[] { BranchIw, code[nameof(Code.Retnw_imm16)], code[nameof(Code.Retnd_imm16)], code[nameof(Code.Retnq_imm16)] }, + new object[] { BranchSimple, code[nameof(Code.Retnw)], code[nameof(Code.Retnd)], code[nameof(Code.Retnq)] }, + new object[] { VEX3, new object[] { Gv_Mp_2, code[nameof(Code.Les_r16_m1616)], code[nameof(Code.Les_r32_m1632)] } }, + new object[] { VEX2, new object[] { Gv_Mp_2, code[nameof(Code.Lds_r16_m1616)], code[nameof(Code.Lds_r32_m1632)] } }, + new object[] { Group8x64, "handlers_Grp_C6_lo", "handlers_Grp_C6_hi" }, + new object[] { Group8x64, "handlers_Grp_C7_lo", "handlers_Grp_C7_hi" }, // C8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Iw_Ib)], codeEnum[nameof(Code.Enterw_imm16_imm8)], codeEnum[nameof(Code.Enterd_imm16_imm8)], codeEnum[nameof(Code.Enterq_imm16_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple3)], codeEnum[nameof(Code.Leavew)], codeEnum[nameof(Code.Leaved)], codeEnum[nameof(Code.Leaveq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2Iw)], codeEnum[nameof(Code.Retfw_imm16)], codeEnum[nameof(Code.Retfd_imm16)], codeEnum[nameof(Code.Retfq_imm16)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3a)], codeEnum[nameof(Code.Retfw)], codeEnum[nameof(Code.Retfd)], codeEnum[nameof(Code.Retfq)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Int3)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ib)], codeEnum[nameof(Code.Int_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Into)] }, + new object[] { Iw_Ib, code[nameof(Code.Enterw_imm16_imm8)], code[nameof(Code.Enterd_imm16_imm8)], code[nameof(Code.Enterq_imm16_imm8)] }, + new object[] { Simple3, code[nameof(Code.Leavew)], code[nameof(Code.Leaved)], code[nameof(Code.Leaveq)] }, + new object[] { Simple2Iw, code[nameof(Code.Retfw_imm16)], code[nameof(Code.Retfd_imm16)], code[nameof(Code.Retfq_imm16)] }, + new object[] { Simple2_3a, code[nameof(Code.Retfw)], code[nameof(Code.Retfd)], code[nameof(Code.Retfq)] }, + new object[] { Simple, code[nameof(Code.Int3)] }, + new object[] { Ib, code[nameof(Code.Int_imm8)] }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Into)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple2_3a)], codeEnum[nameof(Code.Iretw)], codeEnum[nameof(Code.Iretd)], codeEnum[nameof(Code.Iretq)] }, + new object[] { Simple2_3a, code[nameof(Code.Iretw)], code[nameof(Code.Iretd)], code[nameof(Code.Iretq)] }, // D0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_D0" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_D1" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_D2" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_D3" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ib)], codeEnum[nameof(Code.Aam_imm8)] }, + new object[] { Group, "handlers_Grp_D0" }, + new object[] { Group, "handlers_Grp_D1" }, + new object[] { Group, "handlers_Grp_D2" }, + new object[] { Group, "handlers_Grp_D3" }, + new object[] { Bitness, + new object[] { Ib, code[nameof(Code.Aam_imm8)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ib)], codeEnum[nameof(Code.Aad_imm8)] }, + new object[] { Bitness, + new object[] { Ib, code[nameof(Code.Aad_imm8)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Salc)] }, + new object[] { Bitness, + new object[] { Simple, code[nameof(Code.Salc)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.MemBx)], codeEnum[nameof(Code.Xlat_m8)] }, + new object[] { MemBx, code[nameof(Code.Xlat_m8)] }, // D8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x8)], "handlers_FPU_D8_low", "handlers_FPU_D8_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_FPU_D9_low", "handlers_FPU_D9_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_FPU_DA_low", "handlers_FPU_DA_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_FPU_DB_low", "handlers_FPU_DB_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x8)], "handlers_FPU_DC_low", "handlers_FPU_DC_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_FPU_DD_low", "handlers_FPU_DD_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_FPU_DE_low", "handlers_FPU_DE_high" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_FPU_DF_low", "handlers_FPU_DF_high" }, + new object[] { Group8x8, "handlers_FPU_D8_low", "handlers_FPU_D8_high" }, + new object[] { Group8x64, "handlers_FPU_D9_low", "handlers_FPU_D9_high" }, + new object[] { Group8x64, "handlers_FPU_DA_low", "handlers_FPU_DA_high" }, + new object[] { Group8x64, "handlers_FPU_DB_low", "handlers_FPU_DB_high" }, + new object[] { Group8x8, "handlers_FPU_DC_low", "handlers_FPU_DC_high" }, + new object[] { Group8x64, "handlers_FPU_DD_low", "handlers_FPU_DD_high" }, + new object[] { Group8x64, "handlers_FPU_DE_low", "handlers_FPU_DE_high" }, + new object[] { Group8x64, "handlers_FPU_DF_low", "handlers_FPU_DF_high" }, // E0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb2)], codeEnum[nameof(Code.Loopne_rel8_16_CX)], codeEnum[nameof(Code.Loopne_rel8_16_ECX)], codeEnum[nameof(Code.Loopne_rel8_16_RCX)], codeEnum[nameof(Code.Loopne_rel8_32_CX)], codeEnum[nameof(Code.Loopne_rel8_32_ECX)], codeEnum[nameof(Code.Loopne_rel8_64_ECX)], codeEnum[nameof(Code.Loopne_rel8_64_RCX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb2)], codeEnum[nameof(Code.Loope_rel8_16_CX)], codeEnum[nameof(Code.Loope_rel8_16_ECX)], codeEnum[nameof(Code.Loope_rel8_16_RCX)], codeEnum[nameof(Code.Loope_rel8_32_CX)], codeEnum[nameof(Code.Loope_rel8_32_ECX)], codeEnum[nameof(Code.Loope_rel8_64_ECX)], codeEnum[nameof(Code.Loope_rel8_64_RCX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb2)], codeEnum[nameof(Code.Loop_rel8_16_CX)], codeEnum[nameof(Code.Loop_rel8_16_ECX)], codeEnum[nameof(Code.Loop_rel8_16_RCX)], codeEnum[nameof(Code.Loop_rel8_32_CX)], codeEnum[nameof(Code.Loop_rel8_32_ECX)], codeEnum[nameof(Code.Loop_rel8_64_ECX)], codeEnum[nameof(Code.Loop_rel8_64_RCX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb2)], codeEnum[nameof(Code.Jcxz_rel8_16)], codeEnum[nameof(Code.Jecxz_rel8_16)], codeEnum[nameof(Code.Jrcxz_rel8_16)], codeEnum[nameof(Code.Jcxz_rel8_32)], codeEnum[nameof(Code.Jecxz_rel8_32)], codeEnum[nameof(Code.Jecxz_rel8_64)], codeEnum[nameof(Code.Jrcxz_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.RegIb)], codeEnum[nameof(Code.In_AL_imm8)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Reg_Ib2)], codeEnum[nameof(Code.In_AX_imm8)], codeEnum[nameof(Code.In_EAX_imm8)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.IbReg)], codeEnum[nameof(Code.Out_imm8_AL)], registerEnum[nameof(Register.AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.IbReg2)], codeEnum[nameof(Code.Out_imm8_AX)], codeEnum[nameof(Code.Out_imm8_EAX)] }, + new object[] { Jb2, code[nameof(Code.Loopne_rel8_16_CX)], code[nameof(Code.Loopne_rel8_16_ECX)], code[nameof(Code.Loopne_rel8_16_RCX)], code[nameof(Code.Loopne_rel8_32_CX)], code[nameof(Code.Loopne_rel8_32_ECX)], code[nameof(Code.Loopne_rel8_64_ECX)], code[nameof(Code.Loopne_rel8_64_RCX)] }, + new object[] { Jb2, code[nameof(Code.Loope_rel8_16_CX)], code[nameof(Code.Loope_rel8_16_ECX)], code[nameof(Code.Loope_rel8_16_RCX)], code[nameof(Code.Loope_rel8_32_CX)], code[nameof(Code.Loope_rel8_32_ECX)], code[nameof(Code.Loope_rel8_64_ECX)], code[nameof(Code.Loope_rel8_64_RCX)] }, + new object[] { Jb2, code[nameof(Code.Loop_rel8_16_CX)], code[nameof(Code.Loop_rel8_16_ECX)], code[nameof(Code.Loop_rel8_16_RCX)], code[nameof(Code.Loop_rel8_32_CX)], code[nameof(Code.Loop_rel8_32_ECX)], code[nameof(Code.Loop_rel8_64_ECX)], code[nameof(Code.Loop_rel8_64_RCX)] }, + new object[] { Jb2, code[nameof(Code.Jcxz_rel8_16)], code[nameof(Code.Jecxz_rel8_16)], code[nameof(Code.Jrcxz_rel8_16)], code[nameof(Code.Jcxz_rel8_32)], code[nameof(Code.Jecxz_rel8_32)], code[nameof(Code.Jecxz_rel8_64)], code[nameof(Code.Jrcxz_rel8_64)] }, + new object[] { RegIb, code[nameof(Code.In_AL_imm8)], al }, + new object[] { Reg_Ib2, code[nameof(Code.In_AX_imm8)], code[nameof(Code.In_EAX_imm8)] }, + new object[] { IbReg, code[nameof(Code.Out_imm8_AL)], al }, + new object[] { IbReg2, code[nameof(Code.Out_imm8_AX)], code[nameof(Code.Out_imm8_EAX)] }, // E8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Call_rel16)], codeEnum[nameof(Code.Call_rel32_32)], codeEnum[nameof(Code.Call_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jz)], codeEnum[nameof(Code.Jmp_rel16)], codeEnum[nameof(Code.Jmp_rel32_32)], codeEnum[nameof(Code.Jmp_rel32_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Bitness)], - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Ap)], codeEnum[nameof(Code.Jmp_ptr1616)], codeEnum[nameof(Code.Jmp_ptr1632)] }, + new object[] { Jz, code[nameof(Code.Call_rel16)], code[nameof(Code.Call_rel32_32)], code[nameof(Code.Call_rel32_64)] }, + new object[] { Jz, code[nameof(Code.Jmp_rel16)], code[nameof(Code.Jmp_rel32_32)], code[nameof(Code.Jmp_rel32_64)] }, + new object[] { Bitness, + new object[] { Ap, code[nameof(Code.Jmp_ptr1616)], code[nameof(Code.Jmp_ptr1632)] }, invalid, }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Jb)], codeEnum[nameof(Code.Jmp_rel8_16)], codeEnum[nameof(Code.Jmp_rel8_32)], codeEnum[nameof(Code.Jmp_rel8_64)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.AL_DX)], codeEnum[nameof(Code.In_AL_DX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.eAX_DX)], codeEnum[nameof(Code.In_AX_DX)], codeEnum[nameof(Code.In_EAX_DX)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.DX_AL)], codeEnum[nameof(Code.Out_DX_AL)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.DX_eAX)], codeEnum[nameof(Code.Out_DX_AX)], codeEnum[nameof(Code.Out_DX_EAX)] }, + new object[] { Jb, code[nameof(Code.Jmp_rel8_16)], code[nameof(Code.Jmp_rel8_32)], code[nameof(Code.Jmp_rel8_64)] }, + new object[] { AL_DX, code[nameof(Code.In_AL_DX)] }, + new object[] { eAX_DX, code[nameof(Code.In_AX_DX)], code[nameof(Code.In_EAX_DX)] }, + new object[] { DX_AL, code[nameof(Code.Out_DX_AL)] }, + new object[] { DX_eAX, code[nameof(Code.Out_DX_AX)], code[nameof(Code.Out_DX_EAX)] }, // F0 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixF0)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Int1)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixF2)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.PrefixF3)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Hlt)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cmc)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_F6" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_F7" }, + new object[] { PrefixF0 }, + new object[] { Simple, code[nameof(Code.Int1)] }, + new object[] { PrefixF2 }, + new object[] { PrefixF3 }, + new object[] { Simple, code[nameof(Code.Hlt)] }, + new object[] { Simple, code[nameof(Code.Cmc)] }, + new object[] { Group, "handlers_Grp_F6" }, + new object[] { Group, "handlers_Grp_F7" }, // F8 - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Clc)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Stc)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cli)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Sti)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Cld)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Simple)], codeEnum[nameof(Code.Std)] }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_FE" }, - new object[] { legacyEnum[nameof(OpCodeHandlerKind.Group)], "handlers_Grp_FF" }, + new object[] { Simple, code[nameof(Code.Clc)] }, + new object[] { Simple, code[nameof(Code.Stc)] }, + new object[] { Simple, code[nameof(Code.Cli)] }, + new object[] { Simple, code[nameof(Code.Sti)] }, + new object[] { Simple, code[nameof(Code.Cld)] }, + new object[] { Simple, code[nameof(Code.Std)] }, + new object[] { Group, "handlers_Grp_FE" }, + new object[] { Group, "handlers_Grp_FF" }, }), }; return handlers; diff --git a/src/csharp/Intel/Generator/Decoder/DecoderTable_VEX.cs b/src/csharp/Intel/Generator/Decoder/DecoderTable_VEX.cs index 7ad9904e2..72656e716 100644 --- a/src/csharp/Intel/Generator/Decoder/DecoderTable_VEX.cs +++ b/src/csharp/Intel/Generator/Decoder/DecoderTable_VEX.cs @@ -11,41 +11,112 @@ namespace Generator.Decoder { public const string Handlers_0F = nameof(Handlers_0F); public static (string name, object?[] handlers)[] CreateHandlers(GenTypes genTypes) { - var vexEnum = genTypes[TypeIds.VexOpCodeHandlerKind]; - var registerEnum = genTypes[TypeIds.Register]; - var codeEnum = genTypes[TypeIds.Code]; + var kind = genTypes[TypeIds.VexOpCodeHandlerKind]; + var reg = genTypes[TypeIds.Register]; + var code = genTypes[TypeIds.Code]; - var invalid = new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Invalid)] }; + var Bitness_DontReadModRM = kind[nameof(VexOpCodeHandlerKind.Bitness_DontReadModRM)]; + var RM = kind[nameof(VexOpCodeHandlerKind.RM)]; + var Group = kind[nameof(VexOpCodeHandlerKind.Group)]; + var W = kind[nameof(VexOpCodeHandlerKind.W)]; + var MandatoryPrefix2_1 = kind[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)]; + var MandatoryPrefix2_4 = kind[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)]; + var MandatoryPrefix2_NoModRM = kind[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_NoModRM)]; + var VectorLength_NoModRM = kind[nameof(VexOpCodeHandlerKind.VectorLength_NoModRM)]; + var VectorLength = kind[nameof(VexOpCodeHandlerKind.VectorLength)]; + var Ed_V_Ib = kind[nameof(VexOpCodeHandlerKind.Ed_V_Ib)]; + var Ev_VX = kind[nameof(VexOpCodeHandlerKind.Ev_VX)]; + var G_VK = kind[nameof(VexOpCodeHandlerKind.G_VK)]; + var Gv_Ev_Gv = kind[nameof(VexOpCodeHandlerKind.Gv_Ev_Gv)]; + var Gv_Ev_Ib = kind[nameof(VexOpCodeHandlerKind.Gv_Ev_Ib)]; + var Gv_Ev_Id = kind[nameof(VexOpCodeHandlerKind.Gv_Ev_Id)]; + var Gv_GPR_Ib = kind[nameof(VexOpCodeHandlerKind.Gv_GPR_Ib)]; + var Gv_Gv_Ev = kind[nameof(VexOpCodeHandlerKind.Gv_Gv_Ev)]; + var Gv_RX = kind[nameof(VexOpCodeHandlerKind.Gv_RX)]; + var Gv_W = kind[nameof(VexOpCodeHandlerKind.Gv_W)]; + var GvM_VX_Ib = kind[nameof(VexOpCodeHandlerKind.GvM_VX_Ib)]; + var HRIb = kind[nameof(VexOpCodeHandlerKind.HRIb)]; + var Hv_Ed_Id = kind[nameof(VexOpCodeHandlerKind.Hv_Ed_Id)]; + var Hv_Ev = kind[nameof(VexOpCodeHandlerKind.Hv_Ev)]; + var M = kind[nameof(VexOpCodeHandlerKind.M)]; + var MHV = kind[nameof(VexOpCodeHandlerKind.MHV)]; + var M_VK = kind[nameof(VexOpCodeHandlerKind.M_VK)]; + var MV = kind[nameof(VexOpCodeHandlerKind.MV)]; + var rDI_VX_RX = kind[nameof(VexOpCodeHandlerKind.rDI_VX_RX)]; + var RdRq = kind[nameof(VexOpCodeHandlerKind.RdRq)]; + var Simple = kind[nameof(VexOpCodeHandlerKind.Simple)]; + var VHEv = kind[nameof(VexOpCodeHandlerKind.VHEv)]; + var VHEvIb = kind[nameof(VexOpCodeHandlerKind.VHEvIb)]; + var VHIs4W = kind[nameof(VexOpCodeHandlerKind.VHIs4W)]; + var VHIs5W = kind[nameof(VexOpCodeHandlerKind.VHIs5W)]; + var VHM = kind[nameof(VexOpCodeHandlerKind.VHM)]; + var VHW_2 = kind[nameof(VexOpCodeHandlerKind.VHW_2)]; + var VHW_3 = kind[nameof(VexOpCodeHandlerKind.VHW_3)]; + var VHW_4 = kind[nameof(VexOpCodeHandlerKind.VHW_4)]; + var VHWIb_2 = kind[nameof(VexOpCodeHandlerKind.VHWIb_2)]; + var VHWIb_4 = kind[nameof(VexOpCodeHandlerKind.VHWIb_4)]; + var VHWIs4 = kind[nameof(VexOpCodeHandlerKind.VHWIs4)]; + var VHWIs5 = kind[nameof(VexOpCodeHandlerKind.VHWIs5)]; + var VK_HK_RK = kind[nameof(VexOpCodeHandlerKind.VK_HK_RK)]; + var VK_R = kind[nameof(VexOpCodeHandlerKind.VK_R)]; + var VK_RK = kind[nameof(VexOpCodeHandlerKind.VK_RK)]; + var VK_RK_Ib = kind[nameof(VexOpCodeHandlerKind.VK_RK_Ib)]; + var VK_WK = kind[nameof(VexOpCodeHandlerKind.VK_WK)]; + var VM = kind[nameof(VexOpCodeHandlerKind.VM)]; + var VW_2 = kind[nameof(VexOpCodeHandlerKind.VW_2)]; + var VW_3 = kind[nameof(VexOpCodeHandlerKind.VW_3)]; + var VWH = kind[nameof(VexOpCodeHandlerKind.VWH)]; + var VWIb_2 = kind[nameof(VexOpCodeHandlerKind.VWIb_2)]; + var VWIb_3 = kind[nameof(VexOpCodeHandlerKind.VWIb_3)]; + var VX_Ev = kind[nameof(VexOpCodeHandlerKind.VX_Ev)]; + var VX_VSIB_HX = kind[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)]; + var WHV = kind[nameof(VexOpCodeHandlerKind.WHV)]; + var WV = kind[nameof(VexOpCodeHandlerKind.WV)]; + var WVIb = kind[nameof(VexOpCodeHandlerKind.WVIb)]; + var VT_SIBMEM = kind[nameof(VexOpCodeHandlerKind.VT_SIBMEM)]; + var SIBMEM_VT = kind[nameof(VexOpCodeHandlerKind.SIBMEM_VT)]; + var VT = kind[nameof(VexOpCodeHandlerKind.VT)]; + var VT_RT_HT = kind[nameof(VexOpCodeHandlerKind.VT_RT_HT)]; + var Group8x64 = kind[nameof(VexOpCodeHandlerKind.Group8x64)]; + var Bitness = kind[nameof(VexOpCodeHandlerKind.Bitness)]; + + var eax = reg[nameof(Register.EAX)]; + var rax = reg[nameof(Register.RAX)]; + var xmm0 = reg[nameof(Register.XMM0)]; + var ymm0 = reg[nameof(Register.YMM0)]; + + var invalid = new object[] { kind[nameof(VexOpCodeHandlerKind.Invalid)] }; + var invalid_NoModRM = new object[] { kind[nameof(VexOpCodeHandlerKind.Invalid_NoModRM)] }; var handlers = new (string name, object?[] handlers)[] { ("handlers_Grp_0F71", new object[8] { invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlw_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrlw_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsrlw_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsrlw_ymm_ymm_imm8)] }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsraw_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsraw_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsraw_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsraw_ymm_ymm_imm8)] }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllw_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsllw_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsllw_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsllw_ymm_ymm_imm8)] }, }, invalid, invalid, @@ -57,31 +128,31 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrld_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrld_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsrld_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsrld_ymm_ymm_imm8)] }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrad_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrad_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsrad_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsrad_ymm_ymm_imm8)] }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpslld_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpslld_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpslld_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpslld_ymm_ymm_imm8)] }, }, invalid, invalid, @@ -93,40 +164,40 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlq_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrlq_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsrlq_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsrlq_ymm_ymm_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrldq_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrldq_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsrldq_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsrldq_ymm_ymm_imm8)] }, }, invalid, invalid, }, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllq_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsllq_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpsllq_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpsllq_ymm_ymm_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpslldq_xmm_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.HRIb)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpslldq_ymm_ymm_imm8)] }, + new object[] { VectorLength, + new object[] { HRIb, xmm0, code[nameof(Code.VEX_Vpslldq_xmm_xmm_imm8)] }, + new object[] { HRIb, ymm0, code[nameof(Code.VEX_Vpslldq_ymm_ymm_imm8)] }, }, invalid, invalid, @@ -137,18 +208,18 @@ namespace Generator.Decoder { new object[8] { invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M)], codeEnum[nameof(Code.VEX_Vldmxcsr_m32)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { M, code[nameof(Code.VEX_Vldmxcsr_m32)] }, invalid, }, invalid, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M)], codeEnum[nameof(Code.VEX_Vstmxcsr_m32)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { M, code[nameof(Code.VEX_Vstmxcsr_m32)] }, invalid, }, invalid, @@ -164,27 +235,27 @@ namespace Generator.Decoder { ("handlers_Grp_0F38F3", new object[8] { invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.VEX_Blsr_r32_rm32)], codeEnum[nameof(Code.VEX_Blsr_r64_rm64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.VEX_Blsr_r32_rm32)], code[nameof(Code.VEX_Blsr_r64_rm64)] }, invalid, }, invalid, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.VEX_Blsmsk_r32_rm32)], codeEnum[nameof(Code.VEX_Blsmsk_r64_rm64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.VEX_Blsmsk_r32_rm32)], code[nameof(Code.VEX_Blsmsk_r64_rm64)] }, invalid, }, invalid, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.VEX_Blsi_r32_rm32)], codeEnum[nameof(Code.VEX_Blsi_r64_rm64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.VEX_Blsi_r32_rm32)], code[nameof(Code.VEX_Blsi_r64_rm64)] }, invalid, }, invalid, @@ -199,9 +270,9 @@ namespace Generator.Decoder { ("handlers_Grp_128_NP_0F38_W0_49_lo", new object[8] { - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M)], codeEnum[nameof(Code.VEX_Ldtilecfg_m512)] }, + new object[] { M, code[nameof(Code.VEX_Ldtilecfg_m512)] }, }, invalid, invalid, @@ -215,7 +286,7 @@ namespace Generator.Decoder { ("handlers_Grp_128_NP_0F38_W0_49_hi", new object?[0x40] { // C0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Simple)], codeEnum[nameof(Code.VEX_Tilerelease)] }, + new object[] { Simple, code[nameof(Code.VEX_Tilerelease)] }, null, null, null, @@ -297,9 +368,9 @@ namespace Generator.Decoder { ("handlers_Grp_128_66_0F38_W0_49_lo", new object[8] { - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], + new object[] { RM, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M)], codeEnum[nameof(Code.VEX_Sttilecfg_m512)] }, + new object[] { M, code[nameof(Code.VEX_Sttilecfg_m512)] }, }, invalid, invalid, @@ -408,7 +479,7 @@ namespace Generator.Decoder { ("handlers_Grp_128_F2_0F38_W0_49_hi", new object?[0x40] { // C0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -418,7 +489,7 @@ namespace Generator.Decoder { null, // C8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -428,7 +499,7 @@ namespace Generator.Decoder { null, // D0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -438,7 +509,7 @@ namespace Generator.Decoder { null, // D8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -448,7 +519,7 @@ namespace Generator.Decoder { null, // E0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -458,7 +529,7 @@ namespace Generator.Decoder { null, // E8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -468,7 +539,7 @@ namespace Generator.Decoder { null, // F0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -478,7 +549,7 @@ namespace Generator.Decoder { null, // F8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT)], codeEnum[nameof(Code.VEX_Tilezero_tmm)] }, + new object[] { VT, code[nameof(Code.VEX_Tilezero_tmm)] }, null, null, null, @@ -491,158 +562,158 @@ namespace Generator.Decoder { (Handlers_0F38, new object[0x100] { // 00 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpshufb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpshufb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpshufb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpshufb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphaddw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vphaddw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vphaddw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vphaddw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphaddd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vphaddd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vphaddd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vphaddd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphaddsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vphaddsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vphaddsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vphaddsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaddubsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaddubsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaddubsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaddubsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphsubw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vphsubw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vphsubw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vphsubw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphsubd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vphsubd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vphsubd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vphsubd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphsubsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vphsubsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vphsubsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vphsubsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // 08 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsignb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsignb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsignb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsignb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsignw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsignw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsignw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsignw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsignd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsignd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsignd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsignd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmulhrsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmulhrsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmulhrsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmulhrsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermilps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermilps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpermilps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpermilps_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermilpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermilpd_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpermilpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpermilpd_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vtestps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vtestps_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vtestps_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vtestps_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vtestpd_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vtestpd_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vtestpd_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vtestpd_ymm_ymmm256)] }, }, invalid, }, @@ -654,12 +725,12 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtph2ps_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtph2ps_ymm_xmmm128)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vcvtph2ps_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vcvtph2ps_ymm_xmmm128)] }, }, invalid, }, @@ -668,40 +739,40 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermps_ymm_ymm_ymmm256)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpermps_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vptest_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vptest_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vptest_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vptest_ymm_ymmm256)] }, }, invalid, invalid, }, // 18 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vbroadcastss_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vbroadcastss_xmm_m32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vbroadcastss_xmm_xmm)] }, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vbroadcastss_xmm_m32)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vbroadcastss_ymm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vbroadcastss_ymm_m32)] }, + new object[] { RM, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vbroadcastss_ymm_xmm)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vbroadcastss_ymm_m32)] }, }, }, invalid, @@ -709,14 +780,14 @@ namespace Generator.Decoder { invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vbroadcastsd_ymm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vbroadcastsd_ymm_m64)] }, + new object[] { RM, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vbroadcastsd_ymm_xmm)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vbroadcastsd_ymm_m64)] }, }, }, invalid, @@ -724,12 +795,12 @@ namespace Generator.Decoder { invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vbroadcastf128_ymm_m128)] }, + new object[] { VM, ymm0, code[nameof(Code.VEX_Vbroadcastf128_ymm_m128)] }, }, invalid, }, @@ -737,29 +808,29 @@ namespace Generator.Decoder { invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpabsb_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpabsb_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vpabsb_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vpabsb_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpabsw_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpabsw_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vpabsw_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vpabsw_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpabsd_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpabsd_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vpabsd_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vpabsd_ymm_ymmm256)] }, }, invalid, invalid, @@ -767,56 +838,56 @@ namespace Generator.Decoder { invalid, // 20 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxbw_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxbw_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovsxbw_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovsxbw_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxbd_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxbd_ymm_xmmm64)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovsxbd_xmm_xmmm32)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovsxbd_ymm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxbq_xmm_xmmm16)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxbq_ymm_xmmm32)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovsxbq_xmm_xmmm16)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovsxbq_ymm_xmmm32)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxwd_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxwd_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovsxwd_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovsxwd_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxwq_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxwq_ymm_xmmm64)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovsxwq_xmm_xmmm32)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovsxwq_ymm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxdq_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovsxdq_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovsxdq_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovsxdq_ymm_xmmm128)] }, }, invalid, invalid, @@ -825,84 +896,84 @@ namespace Generator.Decoder { invalid, // 28 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmuldq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmuldq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmuldq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmuldq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpeqq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpeqq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovntdqa_xmm_m128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovntdqa_ymm_m256)] }, + new object[] { VectorLength, + new object[] { VM, xmm0, code[nameof(Code.VEX_Vmovntdqa_xmm_m128)] }, + new object[] { VM, ymm0, code[nameof(Code.VEX_Vmovntdqa_ymm_m256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpackusdw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpackusdw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpackusdw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpackusdw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaskmovps_xmm_xmm_m128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmaskmovps_ymm_ymm_m256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.VEX_Vmaskmovps_xmm_xmm_m128)] }, + new object[] { VHM, ymm0, code[nameof(Code.VEX_Vmaskmovps_ymm_ymm_m256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaskmovpd_xmm_xmm_m128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmaskmovpd_ymm_ymm_m256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.VEX_Vmaskmovpd_xmm_xmm_m128)] }, + new object[] { VHM, ymm0, code[nameof(Code.VEX_Vmaskmovpd_ymm_ymm_m256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaskmovps_m128_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmaskmovps_m256_ymm_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { MHV, xmm0, code[nameof(Code.VEX_Vmaskmovps_m128_xmm_xmm)] }, + new object[] { MHV, ymm0, code[nameof(Code.VEX_Vmaskmovps_m256_ymm_ymm)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaskmovpd_m128_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmaskmovpd_m256_ymm_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { MHV, xmm0, code[nameof(Code.VEX_Vmaskmovpd_m128_xmm_xmm)] }, + new object[] { MHV, ymm0, code[nameof(Code.VEX_Vmaskmovpd_m256_ymm_ymm)] }, }, invalid, }, @@ -911,170 +982,170 @@ namespace Generator.Decoder { }, // 30 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxbw_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxbw_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovzxbw_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovzxbw_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxbd_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxbd_ymm_xmmm64)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovzxbd_xmm_xmmm32)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovzxbd_ymm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxbq_xmm_xmmm16)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxbq_ymm_xmmm32)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovzxbq_xmm_xmmm16)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovzxbq_ymm_xmmm32)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxwd_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxwd_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovzxwd_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovzxwd_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxwq_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxwq_ymm_xmmm64)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovzxwq_xmm_xmmm32)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovzxwq_ymm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxdq_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovzxdq_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpmovzxdq_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpmovzxdq_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermd_ymm_ymm_ymmm256)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpermd_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpgtq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpgtq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // 38 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpminsb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpminsb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpminsb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpminsb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpminsd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpminsd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpminsd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpminsd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpminuw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpminuw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpminuw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpminuw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpminud_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpminud_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpminud_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpminud_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaxsb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaxsb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaxsb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaxsb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaxsd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaxsd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaxsd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaxsd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaxuw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaxuw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaxuw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaxuw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaxud_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaxud_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaxud_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaxud_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // 40 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmulld_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmulld_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmulld_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmulld_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vphminposuw_xmm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vphminposuw_xmm_xmmm128)] }, invalid, }, invalid, @@ -1083,43 +1154,43 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlvd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrlvd_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsrlvd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsrlvd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlvq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsrlvq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsrlvq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsrlvq_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsravd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsravd_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsravd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsravd_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllvd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsllvd_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsllvd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsllvd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllvq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsllvq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsllvq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsllvq_ymm_ymm_ymmm256)] }, }, }, invalid, @@ -1128,27 +1199,27 @@ namespace Generator.Decoder { // 48 invalid, - new object[] { vexEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { kind[nameof(OpCodeHandlerKind.Bitness)], invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_128_NP_0F38_W0_49_lo", "handlers_Grp_128_NP_0F38_W0_49_hi" }, + new object[] { MandatoryPrefix2_4, + new object[] { W, + new object[] { VectorLength, + new object[] { kind[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_128_NP_0F38_W0_49_lo", "handlers_Grp_128_NP_0F38_W0_49_hi" }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_128_66_0F38_W0_49_lo", "handlers_Grp_128_66_0F38_W0_49_hi" }, + new object[] { W, + new object[] { VectorLength, + new object[] { kind[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_128_66_0F38_W0_49_lo", "handlers_Grp_128_66_0F38_W0_49_hi" }, invalid, }, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_128_F2_0F38_W0_49_lo", "handlers_Grp_128_F2_0F38_W0_49_hi" }, + new object[] { W, + new object[] { VectorLength, + new object[] { kind[nameof(OpCodeHandlerKind.Group8x64)], "handlers_Grp_128_F2_0F38_W0_49_lo", "handlers_Grp_128_F2_0F38_W0_49_hi" }, invalid, }, invalid, @@ -1156,35 +1227,35 @@ namespace Generator.Decoder { }, }, invalid, - new object[] { vexEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { kind[nameof(OpCodeHandlerKind.Bitness)], invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], + new object[] { W, + new object[] { VectorLength, + new object[] { RM, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_SIBMEM)], codeEnum[nameof(Code.VEX_Tileloaddt1_tmm_sibmem)] }, + new object[] { VT_SIBMEM, code[nameof(Code.VEX_Tileloaddt1_tmm_sibmem)] }, }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], + new object[] { W, + new object[] { VectorLength, + new object[] { RM, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.SIBMEM_VT)], codeEnum[nameof(Code.VEX_Tilestored_sibmem_tmm)] }, + new object[] { SIBMEM_VT, code[nameof(Code.VEX_Tilestored_sibmem_tmm)] }, }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], + new object[] { W, + new object[] { VectorLength, + new object[] { RM, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_SIBMEM)], codeEnum[nameof(Code.VEX_Tileloadd_tmm_sibmem)] }, + new object[] { VT_SIBMEM, code[nameof(Code.VEX_Tileloadd_tmm_sibmem)] }, }, invalid, }, @@ -1198,48 +1269,48 @@ namespace Generator.Decoder { invalid, // 50 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpdpbusd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpdpbusd_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpdpbusd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpdpbusd_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpdpbusds_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpdpbusds_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpdpbusds_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpdpbusds_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpdpwssd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpdpwssd_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpdpwssd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpdpwssd_ymm_ymm_ymmm256)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpdpwssds_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpdpwssds_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpdpwssds_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpdpwssds_ymm_ymm_ymmm256)] }, }, invalid, }, @@ -1252,36 +1323,36 @@ namespace Generator.Decoder { invalid, // 58 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastd_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastd_ymm_xmmm32)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpbroadcastd_xmm_xmmm32)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpbroadcastd_ymm_xmmm32)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastq_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastq_ymm_xmmm64)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpbroadcastq_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpbroadcastq_ymm_xmmm64)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vbroadcasti128_ymm_m128)] }, + new object[] { VM, ymm0, code[nameof(Code.VEX_Vbroadcasti128_ymm_m128)] }, }, invalid, }, @@ -1289,15 +1360,15 @@ namespace Generator.Decoder { invalid, }, invalid, - new object[] { vexEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { kind[nameof(OpCodeHandlerKind.Bitness)], invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_RT_HT)], codeEnum[nameof(Code.VEX_Tdpbf16ps_tmm_tmm_tmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { VT_RT_HT, code[nameof(Code.VEX_Tdpbf16ps_tmm_tmm_tmm)] }, invalid, }, invalid, @@ -1308,43 +1379,43 @@ namespace Generator.Decoder { }, }, invalid, - new object[] { vexEnum[nameof(OpCodeHandlerKind.Bitness)], + new object[] { kind[nameof(OpCodeHandlerKind.Bitness)], invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_RT_HT)], codeEnum[nameof(Code.VEX_Tdpbuud_tmm_tmm_tmm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { VT_RT_HT, code[nameof(Code.VEX_Tdpbuud_tmm_tmm_tmm)] }, invalid, }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_RT_HT)], codeEnum[nameof(Code.VEX_Tdpbusd_tmm_tmm_tmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { VT_RT_HT, code[nameof(Code.VEX_Tdpbusd_tmm_tmm_tmm)] }, invalid, }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_RT_HT)], codeEnum[nameof(Code.VEX_Tdpbsud_tmm_tmm_tmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { VT_RT_HT, code[nameof(Code.VEX_Tdpbsud_tmm_tmm_tmm)] }, invalid, }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VT_RT_HT)], codeEnum[nameof(Code.VEX_Tdpbssd_tmm_tmm_tmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { RM, + new object[] { VT_RT_HT, code[nameof(Code.VEX_Tdpbssd_tmm_tmm_tmm)] }, invalid, }, invalid, @@ -1386,24 +1457,24 @@ namespace Generator.Decoder { invalid, // 78 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastb_xmm_xmmm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastb_ymm_xmmm8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpbroadcastb_xmm_xmmm8)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpbroadcastb_ymm_xmmm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastw_xmm_xmmm16)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpbroadcastw_ymm_xmmm16)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VW_3, xmm0, xmm0, code[nameof(Code.VEX_Vpbroadcastw_xmm_xmmm16)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vpbroadcastw_ymm_xmmm16)] }, }, invalid, }, @@ -1432,32 +1503,32 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovd_xmm_xmm_m128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovd_ymm_ymm_m256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.VEX_Vpmaskmovd_xmm_xmm_m128)] }, + new object[] { VHM, ymm0, code[nameof(Code.VEX_Vpmaskmovd_ymm_ymm_m256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovq_xmm_xmm_m128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovq_ymm_ymm_m256)] }, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.VEX_Vpmaskmovq_xmm_xmm_m128)] }, + new object[] { VHM, ymm0, code[nameof(Code.VEX_Vpmaskmovq_ymm_ymm_m256)] }, }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovd_m128_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovd_m256_ymm_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { MHV, xmm0, code[nameof(Code.VEX_Vpmaskmovd_m128_xmm_xmm)] }, + new object[] { MHV, ymm0, code[nameof(Code.VEX_Vpmaskmovd_m256_ymm_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovq_m128_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MHV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaskmovq_m256_ymm_ymm)] }, + new object[] { VectorLength, + new object[] { MHV, xmm0, code[nameof(Code.VEX_Vpmaskmovq_m128_xmm_xmm)] }, + new object[] { MHV, ymm0, code[nameof(Code.VEX_Vpmaskmovq_m256_ymm_ymm)] }, }, }, invalid, @@ -1466,61 +1537,61 @@ namespace Generator.Decoder { invalid, // 90 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpgatherdd_xmm_vm32x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpgatherdd_ymm_vm32y_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpgatherdd_xmm_vm32x_xmm)] }, + new object[] { VX_VSIB_HX, ymm0, ymm0, ymm0, code[nameof(Code.VEX_Vpgatherdd_ymm_vm32y_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpgatherdq_xmm_vm32x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpgatherdq_ymm_vm32x_ymm)] }, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpgatherdq_xmm_vm32x_xmm)] }, + new object[] { VX_VSIB_HX, ymm0, xmm0, ymm0, code[nameof(Code.VEX_Vpgatherdq_ymm_vm32x_ymm)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpgatherqd_xmm_vm64x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpgatherqd_xmm_vm64y_xmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpgatherqd_xmm_vm64x_xmm)] }, + new object[] { VX_VSIB_HX, xmm0, ymm0, xmm0, code[nameof(Code.VEX_Vpgatherqd_xmm_vm64y_xmm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpgatherqq_xmm_vm64x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpgatherqq_ymm_vm64y_ymm)] }, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpgatherqq_xmm_vm64x_xmm)] }, + new object[] { VX_VSIB_HX, ymm0, ymm0, ymm0, code[nameof(Code.VEX_Vpgatherqq_ymm_vm64y_ymm)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgatherdps_xmm_vm32x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vgatherdps_ymm_vm32y_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vgatherdps_xmm_vm32x_xmm)] }, + new object[] { VX_VSIB_HX, ymm0, ymm0, ymm0, code[nameof(Code.VEX_Vgatherdps_ymm_vm32y_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgatherdpd_xmm_vm32x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vgatherdpd_ymm_vm32x_ymm)] }, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vgatherdpd_xmm_vm32x_xmm)] }, + new object[] { VX_VSIB_HX, ymm0, xmm0, ymm0, code[nameof(Code.VEX_Vgatherdpd_ymm_vm32x_ymm)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgatherqps_xmm_vm64x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgatherqps_xmm_vm64y_xmm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vgatherqps_xmm_vm64x_xmm)] }, + new object[] { VX_VSIB_HX, xmm0, ymm0, xmm0, code[nameof(Code.VEX_Vgatherqps_xmm_vm64y_xmm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgatherqpd_xmm_vm64x_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_VSIB_HX)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vgatherqpd_ymm_vm64y_ymm)] }, + new object[] { VectorLength, + new object[] { VX_VSIB_HX, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vgatherqpd_xmm_vm64x_xmm)] }, + new object[] { VX_VSIB_HX, ymm0, ymm0, ymm0, code[nameof(Code.VEX_Vgatherqpd_ymm_vm64y_ymm)] }, }, }, invalid, @@ -1528,31 +1599,31 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub132ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub132ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmaddsub132ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmaddsub132ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub132pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub132pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmaddsub132pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmaddsub132pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd132ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd132ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsubadd132ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsubadd132ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd132pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd132pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsubadd132pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsubadd132pd_ymm_ymm_ymmm256)] }, }, }, invalid, @@ -1560,98 +1631,98 @@ namespace Generator.Decoder { }, // 98 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd132ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmadd132ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd132ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmadd132ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd132pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmadd132pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd132pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmadd132pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd132ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd132sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd132ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd132sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub132ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsub132ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub132ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsub132ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub132pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsub132pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub132pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsub132pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub132ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub132sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub132ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub132sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd132ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmadd132ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd132ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmadd132ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd132pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmadd132pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd132pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmadd132pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd132ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd132sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd132ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd132sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub132ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsub132ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub132ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmsub132ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub132pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsub132pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub132pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmsub132pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub132ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub132sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub132ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub132sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, @@ -1664,31 +1735,31 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub213ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub213ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmaddsub213ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmaddsub213ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub213pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub213pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmaddsub213pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmaddsub213pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd213ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd213ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsubadd213ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsubadd213ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd213pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd213pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsubadd213pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsubadd213pd_ymm_ymm_ymmm256)] }, }, }, invalid, @@ -1696,98 +1767,98 @@ namespace Generator.Decoder { }, // A8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd213ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmadd213ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd213ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmadd213ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd213pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmadd213pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd213pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmadd213pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd213ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd213sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd213ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd213sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub213ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsub213ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub213ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsub213ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub213pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsub213pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub213pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsub213pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub213ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub213sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub213ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub213sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd213ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmadd213ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd213ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmadd213ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd213pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmadd213pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd213pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmadd213pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd213ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd213sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd213ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd213sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub213ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsub213ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub213ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmsub213ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub213pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsub213pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub213pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmsub213pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub213ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub213sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub213ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub213sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, @@ -1800,31 +1871,31 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub231ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub231ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmaddsub231ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmaddsub231ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub231pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsub231pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmaddsub231pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmaddsub231pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd231ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd231ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsubadd231ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsubadd231ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd231pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubadd231pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsubadd231pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsubadd231pd_ymm_ymm_ymmm256)] }, }, }, invalid, @@ -1832,98 +1903,98 @@ namespace Generator.Decoder { }, // B8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd231ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmadd231ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd231ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmadd231ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd231pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmadd231pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd231pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmadd231pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd231ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmadd231sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd231ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmadd231sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub231ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsub231ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub231ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsub231ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub231pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsub231pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub231pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfmsub231pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub231ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsub231sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub231ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfmsub231sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd231ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmadd231ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd231ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmadd231ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd231pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmadd231pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd231pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmadd231pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd231ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmadd231sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd231ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmadd231sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub231ps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsub231ps_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub231ps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmsub231ps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub231pd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsub231pd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub231pd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vfnmsub231pd_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub231ss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsub231sd_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub231ss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vfnmsub231sd_xmm_xmm_xmmm64)] }, }, invalid, invalid, @@ -1947,12 +2018,12 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgf2p8mulb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vgf2p8mulb_ymm_ymm_ymmm256)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vgf2p8mulb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vgf2p8mulb_ymm_ymm_ymmm256)] }, }, invalid, }, @@ -1974,47 +2045,47 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaesimc_xmm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vaesimc_xmm_xmmm128)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaesenc_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaesenc_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaesenc_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaesenc_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaesenclast_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaesenclast_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaesenclast_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaesenclast_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaesdec_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaesdec_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaesdec_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaesdec_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaesdeclast_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaesdeclast_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaesdeclast_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaesdeclast_ymm_ymm_ymmm256)] }, }, invalid, invalid, @@ -2043,56 +2114,56 @@ namespace Generator.Decoder { // F0 invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Gv_Ev)], codeEnum[nameof(Code.VEX_Andn_r32_r32_rm32)], codeEnum[nameof(Code.VEX_Andn_r64_r64_rm64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Gv_Gv_Ev, code[nameof(Code.VEX_Andn_r32_r32_rm32)], code[nameof(Code.VEX_Andn_r64_r64_rm64)] }, invalid, }, invalid, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "handlers_Grp_0F38F3" }, + new object[] { Group, "handlers_Grp_0F38F3" }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Gv)], codeEnum[nameof(Code.VEX_Bzhi_r32_rm32_r32)], codeEnum[nameof(Code.VEX_Bzhi_r64_rm64_r64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Gv_Ev_Gv, code[nameof(Code.VEX_Bzhi_r32_rm32_r32)], code[nameof(Code.VEX_Bzhi_r64_rm64_r64)] }, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Gv_Ev)], codeEnum[nameof(Code.VEX_Pext_r32_r32_rm32)], codeEnum[nameof(Code.VEX_Pext_r64_r64_rm64)] }, + new object[] { VectorLength, + new object[] { Gv_Gv_Ev, code[nameof(Code.VEX_Pext_r32_r32_rm32)], code[nameof(Code.VEX_Pext_r64_r64_rm64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Gv_Ev)], codeEnum[nameof(Code.VEX_Pdep_r32_r32_rm32)], codeEnum[nameof(Code.VEX_Pdep_r64_r64_rm64)] }, + new object[] { VectorLength, + new object[] { Gv_Gv_Ev, code[nameof(Code.VEX_Pdep_r32_r32_rm32)], code[nameof(Code.VEX_Pdep_r64_r64_rm64)] }, invalid, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Gv_Ev)], codeEnum[nameof(Code.VEX_Mulx_r32_r32_rm32)], codeEnum[nameof(Code.VEX_Mulx_r64_r64_rm64)] }, + new object[] { VectorLength, + new object[] { Gv_Gv_Ev, code[nameof(Code.VEX_Mulx_r32_r32_rm32)], code[nameof(Code.VEX_Mulx_r64_r64_rm64)] }, invalid, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Gv)], codeEnum[nameof(Code.VEX_Bextr_r32_rm32_r32)], codeEnum[nameof(Code.VEX_Bextr_r64_rm64_r64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Gv_Ev_Gv, code[nameof(Code.VEX_Bextr_r32_rm32_r32)], code[nameof(Code.VEX_Bextr_r64_rm64_r64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Gv)], codeEnum[nameof(Code.VEX_Shlx_r32_rm32_r32)], codeEnum[nameof(Code.VEX_Shlx_r64_rm64_r64)] }, + new object[] { VectorLength, + new object[] { Gv_Ev_Gv, code[nameof(Code.VEX_Shlx_r32_rm32_r32)], code[nameof(Code.VEX_Shlx_r64_rm64_r64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Gv)], codeEnum[nameof(Code.VEX_Sarx_r32_rm32_r32)], codeEnum[nameof(Code.VEX_Sarx_r64_rm64_r64)] }, + new object[] { VectorLength, + new object[] { Gv_Ev_Gv, code[nameof(Code.VEX_Sarx_r32_rm32_r32)], code[nameof(Code.VEX_Sarx_r64_rm64_r64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Gv)], codeEnum[nameof(Code.VEX_Shrx_r32_rm32_r32)], codeEnum[nameof(Code.VEX_Shrx_r64_rm64_r64)] }, + new object[] { VectorLength, + new object[] { Gv_Ev_Gv, code[nameof(Code.VEX_Shrx_r32_rm32_r32)], code[nameof(Code.VEX_Shrx_r64_rm64_r64)] }, invalid, }, }, @@ -2111,36 +2182,36 @@ namespace Generator.Decoder { (Handlers_0F3A, new object[0x100] { // 00 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermq_ymm_ymmm256_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpermq_ymm_ymmm256_imm8)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermpd_ymm_ymmm256_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpermpd_ymm_ymmm256_imm8)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpblendd_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpblendd_ymm_ymm_ymmm256_imm8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vpblendd_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vpblendd_ymm_ymm_ymmm256_imm8)] }, }, invalid, }, @@ -2148,36 +2219,36 @@ namespace Generator.Decoder { invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermilps_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermilps_ymm_ymmm256_imm8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpermilps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpermilps_ymm_ymmm256_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermilpd_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermilpd_ymm_ymmm256_imm8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpermilpd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpermilpd_ymm_ymmm256_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vperm2f128_ymm_ymm_ymmm256_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vperm2f128_ymm_ymm_ymmm256_imm8)] }, }, invalid, }, @@ -2187,68 +2258,68 @@ namespace Generator.Decoder { invalid, // 08 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vroundps_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vroundps_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vroundps_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vroundps_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vroundpd_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vroundpd_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vroundpd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vroundpd_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vroundss_xmm_xmm_xmmm32_imm8)] }, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vroundss_xmm_xmm_xmmm32_imm8)] }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vroundsd_xmm_xmm_xmmm64_imm8)] }, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vroundsd_xmm_xmm_xmmm64_imm8)] }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vblendps_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vblendps_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vblendps_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vblendps_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vblendpd_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vblendpd_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vblendpd_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vblendpd_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpblendw_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpblendw_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vpblendw_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vpblendw_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpalignr_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpalignr_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vpalignr_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vpalignr_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, @@ -2259,37 +2330,37 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.GvM_VX_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpextrb_r32m8_xmm_imm8)], codeEnum[nameof(Code.VEX_Vpextrb_r64m8_xmm_imm8)] }, + new object[] { VectorLength, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.VEX_Vpextrb_r32m8_xmm_imm8)], code[nameof(Code.VEX_Vpextrb_r64m8_xmm_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.GvM_VX_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpextrw_r32m16_xmm_imm8)], codeEnum[nameof(Code.VEX_Vpextrw_r64m16_xmm_imm8)] }, + new object[] { VectorLength, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.VEX_Vpextrw_r32m16_xmm_imm8)], code[nameof(Code.VEX_Vpextrw_r64m16_xmm_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.GvM_VX_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpextrd_rm32_xmm_imm8)], codeEnum[nameof(Code.VEX_Vpextrq_rm64_xmm_imm8)] }, + new object[] { VectorLength, + new object[] { GvM_VX_Ib, xmm0, code[nameof(Code.VEX_Vpextrd_rm32_xmm_imm8)], code[nameof(Code.VEX_Vpextrq_rm64_xmm_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Ed_V_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vextractps_rm32_xmm_imm8)], codeEnum[nameof(Code.VEX_Vextractps_r64m32_xmm_imm8)] }, + new object[] { VectorLength, + new object[] { Ed_V_Ib, xmm0, code[nameof(Code.VEX_Vextractps_rm32_xmm_imm8)], code[nameof(Code.VEX_Vextractps_r64m32_xmm_imm8)] }, invalid, }, invalid, @@ -2297,24 +2368,24 @@ namespace Generator.Decoder { }, // 18 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vinsertf128_ymm_ymm_xmmm128_imm8)] }, + new object[] { VHWIb_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vinsertf128_ymm_ymm_xmmm128_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WVIb)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vextractf128_xmmm128_ymm_imm8)] }, + new object[] { WVIb, xmm0, ymm0, code[nameof(Code.VEX_Vextractf128_xmmm128_ymm_imm8)] }, }, invalid, }, @@ -2324,12 +2395,12 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WVIb)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtps2ph_xmmm64_xmm_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WVIb)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvtps2ph_xmmm128_ymm_imm8)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { WVIb, xmm0, xmm0, code[nameof(Code.VEX_Vcvtps2ph_xmmm64_xmm_imm8)] }, + new object[] { WVIb, xmm0, ymm0, code[nameof(Code.VEX_Vcvtps2ph_xmmm128_ymm_imm8)] }, }, invalid, }, @@ -2340,28 +2411,28 @@ namespace Generator.Decoder { invalid, // 20 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHEvIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpinsrb_xmm_xmm_r32m8_imm8)], codeEnum[nameof(Code.VEX_Vpinsrb_xmm_xmm_r64m8_imm8)] }, + new object[] { VectorLength, + new object[] { VHEvIb, xmm0, code[nameof(Code.VEX_Vpinsrb_xmm_xmm_r32m8_imm8)], code[nameof(Code.VEX_Vpinsrb_xmm_xmm_r64m8_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vinsertps_xmm_xmm_xmmm32_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vinsertps_xmm_xmm_xmmm32_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHEvIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpinsrd_xmm_xmm_rm32_imm8)], codeEnum[nameof(Code.VEX_Vpinsrq_xmm_xmm_rm64_imm8)] }, + new object[] { VectorLength, + new object[] { VHEvIb, xmm0, code[nameof(Code.VEX_Vpinsrd_xmm_xmm_rm32_imm8)], code[nameof(Code.VEX_Vpinsrq_xmm_xmm_rm64_imm8)] }, invalid, }, invalid, @@ -2384,48 +2455,48 @@ namespace Generator.Decoder { invalid, // 30 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftrb_kr_kr_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftrw_kr_kr_imm8)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftrb_kr_kr_imm8)] }, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftrw_kr_kr_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftrd_kr_kr_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftrq_kr_kr_imm8)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftrd_kr_kr_imm8)] }, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftrq_kr_kr_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftlb_kr_kr_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftlw_kr_kr_imm8)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftlb_kr_kr_imm8)] }, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftlw_kr_kr_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftld_kr_kr_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK_Ib)], codeEnum[nameof(Code.VEX_Kshiftlq_kr_kr_imm8)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftld_kr_kr_imm8)] }, + new object[] { VK_RK_Ib, code[nameof(Code.VEX_Kshiftlq_kr_kr_imm8)] }, }, invalid, }, @@ -2438,24 +2509,24 @@ namespace Generator.Decoder { invalid, // 38 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vinserti128_ymm_ymm_xmmm128_imm8)] }, + new object[] { VHWIb_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vinserti128_ymm_ymm_xmmm128_imm8)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WVIb)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vextracti128_xmmm128_ymm_imm8)] }, + new object[] { WVIb, xmm0, ymm0, code[nameof(Code.VEX_Vextracti128_xmmm128_ymm_imm8)] }, }, invalid, }, @@ -2470,50 +2541,50 @@ namespace Generator.Decoder { invalid, // 40 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vdpps_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vdpps_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vdpps_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vdpps_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vdppd_xmm_xmm_xmmm128_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vdppd_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmpsadbw_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmpsadbw_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vmpsadbw_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vmpsadbw_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpclmulqdq_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpclmulqdq_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vpclmulqdq_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vpclmulqdq_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { W, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vperm2i128_ymm_ymm_ymmm256_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vperm2i128_ymm_ymm_ymmm256_imm8)] }, }, invalid, }, @@ -2523,66 +2594,66 @@ namespace Generator.Decoder { invalid, // 48 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs5)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermil2ps_xmm_xmm_xmmm128_xmm_imm4)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs5)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermil2ps_ymm_ymm_ymmm256_ymm_imm4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs5, xmm0, code[nameof(Code.VEX_Vpermil2ps_xmm_xmm_xmmm128_xmm_imm4)] }, + new object[] { VHWIs5, ymm0, code[nameof(Code.VEX_Vpermil2ps_ymm_ymm_ymmm256_ymm_imm4)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs5W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermil2ps_xmm_xmm_xmm_xmmm128_imm4)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs5W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermil2ps_ymm_ymm_ymm_ymmm256_imm4)] }, + new object[] { VectorLength, + new object[] { VHIs5W, xmm0, code[nameof(Code.VEX_Vpermil2ps_xmm_xmm_xmm_xmmm128_imm4)] }, + new object[] { VHIs5W, ymm0, code[nameof(Code.VEX_Vpermil2ps_ymm_ymm_ymm_ymmm256_imm4)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs5)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermil2pd_xmm_xmm_xmmm128_xmm_imm4)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs5)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermil2pd_ymm_ymm_ymmm256_ymm_imm4)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs5, xmm0, code[nameof(Code.VEX_Vpermil2pd_xmm_xmm_xmmm128_xmm_imm4)] }, + new object[] { VHWIs5, ymm0, code[nameof(Code.VEX_Vpermil2pd_ymm_ymm_ymmm256_ymm_imm4)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs5W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpermil2pd_xmm_xmm_xmm_xmmm128_imm4)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs5W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpermil2pd_ymm_ymm_ymm_ymmm256_imm4)] }, + new object[] { VectorLength, + new object[] { VHIs5W, xmm0, code[nameof(Code.VEX_Vpermil2pd_xmm_xmm_xmm_xmmm128_imm4)] }, + new object[] { VHIs5W, ymm0, code[nameof(Code.VEX_Vpermil2pd_ymm_ymm_ymm_ymmm256_imm4)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vblendvps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vblendvps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vblendvps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vblendvps_ymm_ymm_ymmm256_ymm)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vblendvpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vblendvpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vblendvpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vblendvpd_ymm_ymm_ymmm256_ymm)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpblendvb_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpblendvb_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vpblendvb_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vpblendvb_ymm_ymm_ymmm256_ymm)] }, }, invalid, }, @@ -2608,61 +2679,61 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmaddsubps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmaddsubps_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubps_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubps_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmaddsubps_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmaddsubps_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmaddsubpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmaddsubpd_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubpd_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddsubpd_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmaddsubpd_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmaddsubpd_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmsubaddps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmsubaddps_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddps_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddps_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmsubaddps_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmsubaddps_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmsubaddpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmsubaddpd_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddpd_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubaddpd_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmsubaddpd_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmsubaddpd_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, @@ -2670,37 +2741,37 @@ namespace Generator.Decoder { }, // 60 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpestrm_xmm_xmmm128_imm8)], codeEnum[nameof(Code.VEX_Vpcmpestrm64_xmm_xmmm128_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_3, xmm0, code[nameof(Code.VEX_Vpcmpestrm_xmm_xmmm128_imm8)], code[nameof(Code.VEX_Vpcmpestrm64_xmm_xmmm128_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpestri_xmm_xmmm128_imm8)], codeEnum[nameof(Code.VEX_Vpcmpestri64_xmm_xmmm128_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_3, xmm0, code[nameof(Code.VEX_Vpcmpestri_xmm_xmmm128_imm8)], code[nameof(Code.VEX_Vpcmpestri64_xmm_xmmm128_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpistrm_xmm_xmmm128_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpcmpistrm_xmm_xmmm128_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpistri_xmm_xmmm128_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpcmpistri_xmm_xmmm128_imm8)] }, invalid, }, invalid, @@ -2712,98 +2783,98 @@ namespace Generator.Decoder { invalid, // 68 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmaddps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmaddps_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddps_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddps_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmaddps_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmaddps_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmaddpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmaddpd_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddpd_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmaddpd_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmaddpd_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmaddpd_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddss_xmm_xmm_xmmm32_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddss_xmm_xmm_xmm_xmmm32)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmaddss_xmm_xmm_xmmm32_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmaddss_xmm_xmm_xmm_xmmm32)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsd_xmm_xmm_xmmm64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmaddsd_xmm_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmaddsd_xmm_xmm_xmmm64_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmaddsd_xmm_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmsubps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmsubps_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubps_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubps_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmsubps_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmsubps_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmsubpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfmsubpd_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubpd_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfmsubpd_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmsubpd_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfmsubpd_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubss_xmm_xmm_xmmm32_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubss_xmm_xmm_xmm_xmmm32)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmsubss_xmm_xmm_xmmm32_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmsubss_xmm_xmm_xmm_xmmm32)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubsd_xmm_xmm_xmmm64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfmsubsd_xmm_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfmsubsd_xmm_xmm_xmmm64_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfmsubsd_xmm_xmm_xmm_xmmm64)] }, }, invalid, invalid, @@ -2820,98 +2891,98 @@ namespace Generator.Decoder { invalid, // 78 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmaddps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmaddps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfnmaddps_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddps_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmaddps_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmaddps_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfnmaddps_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmaddpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmaddpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfnmaddpd_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddpd_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmaddpd_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmaddpd_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfnmaddpd_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddss_xmm_xmm_xmmm32_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddss_xmm_xmm_xmm_xmmm32)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmaddss_xmm_xmm_xmmm32_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmaddss_xmm_xmm_xmm_xmmm32)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddsd_xmm_xmm_xmmm64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmaddsd_xmm_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmaddsd_xmm_xmm_xmmm64_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmaddsd_xmm_xmm_xmm_xmmm64)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubps_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsubps_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmsubps_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfnmsubps_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubps_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsubps_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmsubps_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfnmsubps_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubpd_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsubpd_ymm_ymm_ymmm256_ymm)] }, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmsubpd_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.VEX_Vfnmsubpd_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubpd_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vfnmsubpd_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmsubpd_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.VEX_Vfnmsubpd_ymm_ymm_ymm_ymmm256)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubss_xmm_xmm_xmmm32_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubss_xmm_xmm_xmm_xmmm32)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmsubss_xmm_xmm_xmmm32_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmsubss_xmm_xmm_xmm_xmmm32)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubsd_xmm_xmm_xmmm64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vfnmsubsd_xmm_xmm_xmm_xmmm64)] }, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.VEX_Vfnmsubsd_xmm_xmm_xmmm64_xmm)] }, + new object[] { VHIs4W, xmm0, code[nameof(Code.VEX_Vfnmsubsd_xmm_xmm_xmm_xmmm64)] }, }, invalid, invalid, @@ -3014,25 +3085,25 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgf2p8affineqb_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vgf2p8affineqb_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vgf2p8affineqb_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vgf2p8affineqb_ymm_ymm_ymmm256_imm8)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], + new object[] { W, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vgf2p8affineinvqb_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vgf2p8affineinvqb_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vgf2p8affineinvqb_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vgf2p8affineinvqb_ymm_ymm_ymmm256_imm8)] }, }, }, invalid, @@ -3057,10 +3128,10 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaeskeygenassist_xmm_xmmm128_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vaeskeygenassist_xmm_xmmm128_imm8)] }, invalid, }, invalid, @@ -3088,12 +3159,12 @@ namespace Generator.Decoder { invalid, // F0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Ib)], codeEnum[nameof(Code.VEX_Rorx_r32_rm32_imm8)], codeEnum[nameof(Code.VEX_Rorx_r64_rm64_imm8)] }, + new object[] { VectorLength, + new object[] { Gv_Ev_Ib, code[nameof(Code.VEX_Rorx_r32_rm32_imm8)], code[nameof(Code.VEX_Rorx_r64_rm64_imm8)] }, invalid, }, }, @@ -3139,118 +3210,118 @@ namespace Generator.Decoder { invalid, // 10 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovups_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovups_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovups_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovups_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovupd_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovupd_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovupd_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovupd_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovss_xmm_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovss_xmm_m32)] }, + new object[] { RM, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmovss_xmm_xmm_xmm)] }, + new object[] { VM, xmm0, code[nameof(Code.VEX_Vmovss_xmm_m32)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovsd_xmm_xmm_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovsd_xmm_m64)] }, + new object[] { RM, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmovsd_xmm_xmm_xmm)] }, + new object[] { VM, xmm0, code[nameof(Code.VEX_Vmovsd_xmm_m64)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovups_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovups_ymmm256_ymm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovups_xmmm128_xmm)] }, + new object[] { WV, ymm0, code[nameof(Code.VEX_Vmovups_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovupd_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovupd_ymmm256_ymm)] }, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovupd_xmmm128_xmm)] }, + new object[] { WV, ymm0, code[nameof(Code.VEX_Vmovupd_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WHV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovss_xmm_xmm_xmm_0F11)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovss_m32_xmm)] }, + new object[] { RM, + new object[] { WHV, xmm0, code[nameof(Code.VEX_Vmovss_xmm_xmm_xmm_0F11)] }, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovss_m32_xmm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WHV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovsd_xmm_xmm_xmm_0F11)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovsd_m64_xmm)] }, + new object[] { RM, + new object[] { WHV, xmm0, code[nameof(Code.VEX_Vmovsd_xmm_xmm_xmm_0F11)] }, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovsd_m64_xmm)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovhlps_xmm_xmm_xmm)], codeEnum[nameof(Code.VEX_Vmovlps_xmm_xmm_m64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.VEX_Vmovhlps_xmm_xmm_xmm)], code[nameof(Code.VEX_Vmovlps_xmm_xmm_m64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovlpd_xmm_xmm_m64)] }, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.VEX_Vmovlpd_xmm_xmm_m64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovsldup_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovsldup_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovsldup_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovsldup_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovddup_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovddup_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovddup_xmm_xmmm64)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovddup_ymm_ymmm256)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovlps_m64_xmm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovlps_m64_xmm)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovlpd_m64_xmm)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovlpd_m64_xmm)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vunpcklps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vunpcklps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vunpcklps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vunpcklps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vunpcklpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vunpcklpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vunpcklpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vunpcklpd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vunpckhps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vunpckhps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vunpckhps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vunpckhps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vunpckhpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vunpckhpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vunpckhpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vunpckhpd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_3)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovlhps_xmm_xmm_xmm)], codeEnum[nameof(Code.VEX_Vmovhps_xmm_xmm_m64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_3, xmm0, code[nameof(Code.VEX_Vmovlhps_xmm_xmm_xmm)], code[nameof(Code.VEX_Vmovhps_xmm_xmm_m64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovhpd_xmm_xmm_m64)] }, + new object[] { VectorLength, + new object[] { VHM, xmm0, code[nameof(Code.VEX_Vmovhpd_xmm_xmm_m64)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovshdup_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovshdup_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovshdup_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovshdup_ymm_ymmm256)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovhps_m64_xmm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovhps_m64_xmm)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovhpd_m64_xmm)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovhpd_m64_xmm)] }, invalid, }, invalid, @@ -3278,69 +3349,69 @@ namespace Generator.Decoder { invalid, // 28 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovaps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovaps_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovaps_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovaps_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovapd_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovapd_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovapd_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovapd_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovaps_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovaps_ymmm256_ymm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovaps_xmmm128_xmm)] }, + new object[] { WV, ymm0, code[nameof(Code.VEX_Vmovaps_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovapd_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovapd_ymmm256_ymm)] }, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovapd_xmmm128_xmm)] }, + new object[] { WV, ymm0, code[nameof(Code.VEX_Vmovapd_ymmm256_ymm)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHEv)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtsi2ss_xmm_xmm_rm32)], codeEnum[nameof(Code.VEX_Vcvtsi2ss_xmm_xmm_rm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHEv)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtsi2sd_xmm_xmm_rm32)], codeEnum[nameof(Code.VEX_Vcvtsi2sd_xmm_xmm_rm64)] }, + new object[] { VHEv, xmm0, code[nameof(Code.VEX_Vcvtsi2ss_xmm_xmm_rm32)], code[nameof(Code.VEX_Vcvtsi2ss_xmm_xmm_rm64)] }, + new object[] { VHEv, xmm0, code[nameof(Code.VEX_Vcvtsi2sd_xmm_xmm_rm32)], code[nameof(Code.VEX_Vcvtsi2sd_xmm_xmm_rm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovntps_m128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovntps_m256_ymm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovntps_m128_xmm)] }, + new object[] { MV, ymm0, code[nameof(Code.VEX_Vmovntps_m256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovntpd_m128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovntpd_m256_ymm)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovntpd_m128_xmm)] }, + new object[] { MV, ymm0, code[nameof(Code.VEX_Vmovntpd_m256_ymm)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvttss2si_r32_xmmm32)], codeEnum[nameof(Code.VEX_Vcvttss2si_r64_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvttsd2si_r32_xmmm64)], codeEnum[nameof(Code.VEX_Vcvttsd2si_r64_xmmm64)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.VEX_Vcvttss2si_r32_xmmm32)], code[nameof(Code.VEX_Vcvttss2si_r64_xmmm32)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.VEX_Vcvttsd2si_r32_xmmm64)], code[nameof(Code.VEX_Vcvttsd2si_r64_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtss2si_r32_xmmm32)], codeEnum[nameof(Code.VEX_Vcvtss2si_r64_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtsd2si_r32_xmmm64)], codeEnum[nameof(Code.VEX_Vcvtsd2si_r64_xmmm64)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.VEX_Vcvtss2si_r32_xmmm32)], code[nameof(Code.VEX_Vcvtss2si_r64_xmmm32)] }, + new object[] { Gv_W, xmm0, code[nameof(Code.VEX_Vcvtsd2si_r32_xmmm64)], code[nameof(Code.VEX_Vcvtsd2si_r64_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vucomiss_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vucomisd_xmm_xmmm64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vucomiss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vucomisd_xmm_xmmm64)] }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcomiss_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcomisd_xmm_xmmm64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcomiss_xmm_xmmm32)] }, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcomisd_xmm_xmmm64)] }, invalid, invalid, }, @@ -3367,110 +3438,110 @@ namespace Generator.Decoder { // 40 invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandw_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandw_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandb_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandd_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandb_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandd_kr_kr_kr)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandnw_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandnq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandnw_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandnq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandnb_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kandnd_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandnb_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kandnd_kr_kr_kr)] }, }, }, invalid, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Knotw_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Knotq_kr_kr)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK, code[nameof(Code.VEX_Knotw_kr_kr)] }, + new object[] { VK_RK, code[nameof(Code.VEX_Knotq_kr_kr)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Knotb_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Knotd_kr_kr)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK, code[nameof(Code.VEX_Knotb_kr_kr)] }, + new object[] { VK_RK, code[nameof(Code.VEX_Knotd_kr_kr)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Korw_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Korq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Korw_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Korq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Korb_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kord_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Korb_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kord_kr_kr_kr)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxnorw_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxnorq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxnorw_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxnorq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxnorb_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxnord_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxnorb_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxnord_kr_kr_kr)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxorw_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxorq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxorw_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxorq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxorb_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kxord_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxorb_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kxord_kr_kr_kr)] }, }, }, invalid, @@ -3480,36 +3551,36 @@ namespace Generator.Decoder { // 48 invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kaddw_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kaddq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kaddw_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kaddq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kaddb_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kaddd_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kaddb_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kaddd_kr_kr_kr)] }, }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kunpckwd_kr_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kunpckdq_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kunpckwd_kr_kr_kr)] }, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kunpckdq_kr_kr_kr)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], + new object[] { VectorLength, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_HK_RK)], codeEnum[nameof(Code.VEX_Kunpckbw_kr_kr_kr)] }, + new object[] { W, + new object[] { VK_HK_RK, code[nameof(Code.VEX_Kunpckbw_kr_kr_kr)] }, invalid, }, }, @@ -3522,403 +3593,403 @@ namespace Generator.Decoder { invalid, // 50 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovmskps_r32_xmm)], codeEnum[nameof(Code.VEX_Vmovmskps_r64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovmskps_r32_ymm)], codeEnum[nameof(Code.VEX_Vmovmskps_r64_ymm)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { Gv_RX, xmm0, code[nameof(Code.VEX_Vmovmskps_r32_xmm)], code[nameof(Code.VEX_Vmovmskps_r64_xmm)] }, + new object[] { Gv_RX, ymm0, code[nameof(Code.VEX_Vmovmskps_r32_ymm)], code[nameof(Code.VEX_Vmovmskps_r64_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovmskpd_r32_xmm)], codeEnum[nameof(Code.VEX_Vmovmskpd_r64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovmskpd_r32_ymm)], codeEnum[nameof(Code.VEX_Vmovmskpd_r64_ymm)] }, + new object[] { VectorLength, + new object[] { Gv_RX, xmm0, code[nameof(Code.VEX_Vmovmskpd_r32_xmm)], code[nameof(Code.VEX_Vmovmskpd_r64_xmm)] }, + new object[] { Gv_RX, ymm0, code[nameof(Code.VEX_Vmovmskpd_r32_ymm)], code[nameof(Code.VEX_Vmovmskpd_r64_ymm)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsqrtps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vsqrtps_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vsqrtps_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vsqrtps_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsqrtpd_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vsqrtpd_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vsqrtpd_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vsqrtpd_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsqrtss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsqrtsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vsqrtss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vsqrtsd_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vrsqrtps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vrsqrtps_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vrsqrtps_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vrsqrtps_ymm_ymmm256)] }, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vrsqrtss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vrsqrtss_xmm_xmm_xmmm32)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vrcpps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vrcpps_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vrcpps_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vrcpps_ymm_ymmm256)] }, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vrcpss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vrcpss_xmm_xmm_xmmm32)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vandps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vandps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vandps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vandps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vandpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vandpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vandpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vandpd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vandnps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vandnps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vandnps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vandnps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vandnpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vandnpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vandnpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vandnpd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vorps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vorps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vorps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vorps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vorpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vorpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vorpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vorpd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vxorps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vxorps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vxorps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vxorps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vxorpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vxorpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vxorpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vxorpd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // 58 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaddps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaddps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaddps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaddps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaddpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaddpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaddpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaddpd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaddss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaddsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaddss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaddsd_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmulps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmulps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmulps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vmulps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmulpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmulpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmulpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vmulpd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmulss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmulsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmulss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmulsd_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtps2pd_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtps2pd_ymm_xmmm128)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvtps2pd_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vcvtps2pd_ymm_xmmm128)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtpd2ps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvtpd2ps_xmm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvtpd2ps_xmm_xmmm128)] }, + new object[] { VW_3, xmm0, ymm0, code[nameof(Code.VEX_Vcvtpd2ps_xmm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtss2sd_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtsd2ss_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vcvtss2sd_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vcvtsd2ss_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtdq2ps_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvtdq2ps_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvtdq2ps_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vcvtdq2ps_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtps2dq_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvtps2dq_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvtps2dq_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vcvtps2dq_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvttps2dq_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvttps2dq_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvttps2dq_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vcvttps2dq_ymm_ymmm256)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsubps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vsubps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vsubps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vsubps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsubpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vsubpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vsubpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vsubpd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsubss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vsubsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vsubss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vsubsd_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vminps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vminps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vminps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vminps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vminpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vminpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vminpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vminpd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vminss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vminsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vminss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vminsd_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vdivps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vdivps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vdivps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vdivps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vdivpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vdivpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vdivpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vdivpd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vdivss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vdivsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vdivss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vdivsd_xmm_xmm_xmmm64)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaxps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmaxps_ymm_ymm_ymmm256)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmaxps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vmaxps_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaxpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmaxpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmaxpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vmaxpd_ymm_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaxss_xmm_xmm_xmmm32)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaxsd_xmm_xmm_xmmm64)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmaxss_xmm_xmm_xmmm32)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vmaxsd_xmm_xmm_xmmm64)] }, }, // 60 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpcklbw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpcklbw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpcklbw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpcklbw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpcklwd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpcklwd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpcklwd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpcklwd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpckldq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpckldq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpckldq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpckldq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpacksswb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpacksswb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpacksswb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpacksswb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpgtb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpgtb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpgtw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpgtw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpgtd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpgtd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpgtd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpackuswb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpackuswb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpackuswb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpackuswb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // 68 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpckhbw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpckhbw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpckhbw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpckhbw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpckhwd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpckhwd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpckhwd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpckhwd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpckhdq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpckhdq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpckhdq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpckhdq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpackssdw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpackssdw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpackssdw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpackssdw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpcklqdq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpcklqdq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpcklqdq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpcklqdq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpunpckhqdq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpunpckhqdq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpunpckhqdq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpunpckhqdq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VX_Ev)], codeEnum[nameof(Code.VEX_Vmovd_xmm_rm32)], codeEnum[nameof(Code.VEX_Vmovq_xmm_rm64)] }, + new object[] { VectorLength, + new object[] { VX_Ev, code[nameof(Code.VEX_Vmovd_xmm_rm32)], code[nameof(Code.VEX_Vmovq_xmm_rm64)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovdqa_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovdqa_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovdqa_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovdqa_ymm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovdqu_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovdqu_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovdqu_xmm_xmmm128)] }, + new object[] { VW_2, ymm0, code[nameof(Code.VEX_Vmovdqu_ymm_ymmm256)] }, }, invalid, }, // 70 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpshufd_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpshufd_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpshufd_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpshufd_ymm_ymmm256_imm8)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpshufhw_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpshufhw_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpshufhw_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpshufhw_ymm_ymmm256_imm8)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpshuflw_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpshuflw_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VWIb_2, xmm0, code[nameof(Code.VEX_Vpshuflw_xmm_xmmm128_imm8)] }, + new object[] { VWIb_2, ymm0, code[nameof(Code.VEX_Vpshuflw_ymm_ymmm256_imm8)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "handlers_Grp_0F71" }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "handlers_Grp_0F72" }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "handlers_Grp_0F73" }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { Group, "handlers_Grp_0F71" }, + new object[] { Group, "handlers_Grp_0F72" }, + new object[] { Group, "handlers_Grp_0F73" }, + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpeqb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpeqb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpeqw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpeqw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpcmpeqd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpcmpeqd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpcmpeqd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_NoModRM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength_NoModRM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Simple)], codeEnum[nameof(Code.VEX_Vzeroupper)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Simple)], codeEnum[nameof(Code.VEX_Vzeroall)] }, + new object[] { MandatoryPrefix2_NoModRM, + new object[] { VectorLength_NoModRM, + new object[] { Simple, code[nameof(Code.VEX_Vzeroupper)] }, + new object[] { Simple, code[nameof(Code.VEX_Vzeroall)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Invalid_NoModRM)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Invalid_NoModRM)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Invalid_NoModRM)] }, + invalid_NoModRM, + invalid_NoModRM, + invalid_NoModRM, }, // 78 @@ -3926,51 +3997,51 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vhaddpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vhaddpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vhaddpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vhaddpd_ymm_ymm_ymmm256)] }, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vhaddps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vhaddps_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vhaddps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vhaddps_ymm_ymm_ymmm256)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vhsubpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vhsubpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vhsubpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vhsubpd_ymm_ymm_ymmm256)] }, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vhsubps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vhsubps_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vhsubps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vhsubps_ymm_ymm_ymmm256)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Ev_VX)], codeEnum[nameof(Code.VEX_Vmovd_rm32_xmm)], codeEnum[nameof(Code.VEX_Vmovq_rm64_xmm)] }, + new object[] { VectorLength, + new object[] { Ev_VX, code[nameof(Code.VEX_Vmovd_rm32_xmm)], code[nameof(Code.VEX_Vmovq_rm64_xmm)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovq_xmm_xmmm64)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vmovq_xmm_xmmm64)] }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovdqa_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovdqa_ymmm256_ymm)] }, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovdqa_xmmm128_xmm)] }, + new object[] { WV, ymm0, code[nameof(Code.VEX_Vmovdqa_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovdqu_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovdqu_ymmm256_ymm)] }, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovdqu_xmmm128_xmm)] }, + new object[] { WV, ymm0, code[nameof(Code.VEX_Vmovdqu_ymmm256_ymm)] }, }, invalid, }, @@ -3996,91 +4067,91 @@ namespace Generator.Decoder { invalid, // 90 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_WK)], codeEnum[nameof(Code.VEX_Kmovw_kr_km16)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_WK)], codeEnum[nameof(Code.VEX_Kmovq_kr_km64)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_WK, code[nameof(Code.VEX_Kmovw_kr_km16)] }, + new object[] { VK_WK, code[nameof(Code.VEX_Kmovq_kr_km64)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_WK)], codeEnum[nameof(Code.VEX_Kmovb_kr_km8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_WK)], codeEnum[nameof(Code.VEX_Kmovd_kr_km32)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_WK, code[nameof(Code.VEX_Kmovb_kr_km8)] }, + new object[] { VK_WK, code[nameof(Code.VEX_Kmovd_kr_km32)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M_VK)], codeEnum[nameof(Code.VEX_Kmovw_m16_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M_VK)], codeEnum[nameof(Code.VEX_Kmovq_m64_kr)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { M_VK, code[nameof(Code.VEX_Kmovw_m16_kr)] }, + new object[] { M_VK, code[nameof(Code.VEX_Kmovq_m64_kr)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M_VK)], codeEnum[nameof(Code.VEX_Kmovb_m8_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.M_VK)], codeEnum[nameof(Code.VEX_Kmovd_m32_kr)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { M_VK, code[nameof(Code.VEX_Kmovb_m8_kr)] }, + new object[] { M_VK, code[nameof(Code.VEX_Kmovd_m32_kr)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_R)], codeEnum[nameof(Code.VEX_Kmovw_kr_r32)], registerEnum[nameof(Register.EAX)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_R, code[nameof(Code.VEX_Kmovw_kr_r32)], eax }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_R)], codeEnum[nameof(Code.VEX_Kmovb_kr_r32)], registerEnum[nameof(Register.EAX)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_R, code[nameof(Code.VEX_Kmovb_kr_r32)], eax }, invalid, }, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_R)], codeEnum[nameof(Code.VEX_Kmovd_kr_r32)], registerEnum[nameof(Register.EAX)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Bitness_DontReadModRM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_R)], codeEnum[nameof(Code.VEX_Kmovd_kr_r32)], registerEnum[nameof(Register.EAX)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_R)], codeEnum[nameof(Code.VEX_Kmovq_kr_r64)], registerEnum[nameof(Register.RAX)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_R, code[nameof(Code.VEX_Kmovd_kr_r32)], eax }, + new object[] { Bitness_DontReadModRM, + new object[] { VK_R, code[nameof(Code.VEX_Kmovd_kr_r32)], eax }, + new object[] { VK_R, code[nameof(Code.VEX_Kmovq_kr_r64)], rax }, }, }, invalid, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.G_VK)], codeEnum[nameof(Code.VEX_Kmovw_r32_kr)], registerEnum[nameof(Register.EAX)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { G_VK, code[nameof(Code.VEX_Kmovw_r32_kr)], eax }, invalid, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.G_VK)], codeEnum[nameof(Code.VEX_Kmovb_r32_kr)], registerEnum[nameof(Register.EAX)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { G_VK, code[nameof(Code.VEX_Kmovb_r32_kr)], eax }, invalid, }, invalid, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.G_VK)], codeEnum[nameof(Code.VEX_Kmovd_r32_kr)], registerEnum[nameof(Register.EAX)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Bitness_DontReadModRM)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.G_VK)], codeEnum[nameof(Code.VEX_Kmovd_r32_kr)], registerEnum[nameof(Register.EAX)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.G_VK)], codeEnum[nameof(Code.VEX_Kmovq_r64_kr)], registerEnum[nameof(Register.RAX)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { G_VK, code[nameof(Code.VEX_Kmovd_r32_kr)], eax }, + new object[] { Bitness_DontReadModRM, + new object[] { G_VK, code[nameof(Code.VEX_Kmovd_r32_kr)], eax }, + new object[] { G_VK, code[nameof(Code.VEX_Kmovq_r64_kr)], rax }, }, }, invalid, @@ -4092,36 +4163,36 @@ namespace Generator.Decoder { invalid, // 98 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Kortestw_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Kortestq_kr_kr)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK, code[nameof(Code.VEX_Kortestw_kr_kr)] }, + new object[] { VK_RK, code[nameof(Code.VEX_Kortestq_kr_kr)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Kortestb_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Kortestd_kr_kr)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK, code[nameof(Code.VEX_Kortestb_kr_kr)] }, + new object[] { VK_RK, code[nameof(Code.VEX_Kortestd_kr_kr)] }, }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Ktestw_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Ktestq_kr_kr)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK, code[nameof(Code.VEX_Ktestw_kr_kr)] }, + new object[] { VK_RK, code[nameof(Code.VEX_Ktestq_kr_kr)] }, }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Ktestb_kr_kr)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VK_RK)], codeEnum[nameof(Code.VEX_Ktestd_kr_kr)] }, + new object[] { VectorLength, + new object[] { W, + new object[] { VK_RK, code[nameof(Code.VEX_Ktestb_kr_kr)] }, + new object[] { VK_RK, code[nameof(Code.VEX_Ktestd_kr_kr)] }, }, invalid, }, @@ -4152,7 +4223,7 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "handlers_Grp_0FAE" }, + new object[] { Group, "handlers_Grp_0FAE" }, invalid, // B0 @@ -4178,45 +4249,45 @@ namespace Generator.Decoder { // C0 invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcmpps_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcmpps_ymm_ymm_ymmm256_imm8)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vcmpps_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vcmpps_ymm_ymm_ymmm256_imm8)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcmppd_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcmppd_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vcmppd_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vcmppd_ymm_ymm_ymmm256_imm8)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcmpss_xmm_xmm_xmmm32_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcmpsd_xmm_xmm_xmmm64_imm8)] }, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vcmpss_xmm_xmm_xmmm32_imm8)] }, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vcmpsd_xmm_xmm_xmmm64_imm8)] }, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHEvIb)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpinsrw_xmm_xmm_r32m16_imm8)], codeEnum[nameof(Code.VEX_Vpinsrw_xmm_xmm_r64m16_imm8)] }, + new object[] { VectorLength, + new object[] { VHEvIb, xmm0, code[nameof(Code.VEX_Vpinsrw_xmm_xmm_r32m16_imm8)], code[nameof(Code.VEX_Vpinsrw_xmm_xmm_r64m16_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_GPR_Ib)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpextrw_r32_xmm_imm8)], codeEnum[nameof(Code.VEX_Vpextrw_r64_xmm_imm8)] }, + new object[] { VectorLength, + new object[] { Gv_GPR_Ib, xmm0, code[nameof(Code.VEX_Vpextrw_r32_xmm_imm8)], code[nameof(Code.VEX_Vpextrw_r64_xmm_imm8)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vshufps_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vshufps_ymm_ymm_ymmm256_imm8)] }, + new object[] { MandatoryPrefix2_4, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vshufps_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vshufps_ymm_ymm_ymmm256_imm8)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vshufpd_xmm_xmm_xmmm128_imm8)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vshufpd_ymm_ymm_ymmm256_imm8)] }, + new object[] { VectorLength, + new object[] { VHWIb_2, xmm0, code[nameof(Code.VEX_Vshufpd_xmm_xmm_xmmm128_imm8)] }, + new object[] { VHWIb_2, ymm0, code[nameof(Code.VEX_Vshufpd_ymm_ymm_ymmm256_imm8)] }, }, invalid, invalid, @@ -4234,378 +4305,378 @@ namespace Generator.Decoder { invalid, // D0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaddsubpd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaddsubpd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaddsubpd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaddsubpd_ymm_ymm_ymmm256)] }, }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vaddsubps_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vaddsubps_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vaddsubps_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vaddsubps_ymm_ymm_ymmm256)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlw_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsrlw_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsrlw_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrld_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrld_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsrld_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsrld_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrlq_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsrlq_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsrlq_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmullw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmullw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmullw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmullw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.WV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovq_xmmm64_xmm)] }, + new object[] { VectorLength, + new object[] { WV, xmm0, code[nameof(Code.VEX_Vmovq_xmmm64_xmm)] }, invalid, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmovmskb_r32_xmm)], codeEnum[nameof(Code.VEX_Vpmovmskb_r64_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_RX)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmovmskb_r32_ymm)], codeEnum[nameof(Code.VEX_Vpmovmskb_r64_ymm)] }, + new object[] { VectorLength, + new object[] { Gv_RX, xmm0, code[nameof(Code.VEX_Vpmovmskb_r32_xmm)], code[nameof(Code.VEX_Vpmovmskb_r64_xmm)] }, + new object[] { Gv_RX, ymm0, code[nameof(Code.VEX_Vpmovmskb_r32_ymm)], code[nameof(Code.VEX_Vpmovmskb_r64_ymm)] }, }, invalid, invalid, }, // D8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubusb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubusb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubusb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubusb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubusw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubusw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubusw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubusw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpminub_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpminub_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpminub_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpminub_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpand_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpand_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpand_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpand_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddusb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddusb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddusb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddusb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddusw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddusw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddusw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddusw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaxub_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaxub_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaxub_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaxub_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpandn_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpandn_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpandn_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpandn_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // E0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpavgb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpavgb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpavgb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpavgb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsraw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsraw_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsraw_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsraw_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrad_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsrad_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsrad_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsrad_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpavgw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpavgw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpavgw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpavgw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmulhuw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmulhuw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmulhuw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmulhuw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmulhw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmulhw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmulhw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmulhw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvttpd2dq_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvttpd2dq_xmm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvttpd2dq_xmm_xmmm128)] }, + new object[] { VW_3, xmm0, ymm0, code[nameof(Code.VEX_Vcvttpd2dq_xmm_ymmm256)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtdq2pd_xmm_xmmm64)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtdq2pd_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvtdq2pd_xmm_xmmm64)] }, + new object[] { VW_3, ymm0, xmm0, code[nameof(Code.VEX_Vcvtdq2pd_ymm_xmmm128)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vcvtpd2dq_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_3)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vcvtpd2dq_xmm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VW_2, xmm0, code[nameof(Code.VEX_Vcvtpd2dq_xmm_xmmm128)] }, + new object[] { VW_3, xmm0, ymm0, code[nameof(Code.VEX_Vcvtpd2dq_xmm_ymmm256)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmovntdq_m128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MV)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vmovntdq_m256_ymm)] }, + new object[] { VectorLength, + new object[] { MV, xmm0, code[nameof(Code.VEX_Vmovntdq_m128_xmm)] }, + new object[] { MV, ymm0, code[nameof(Code.VEX_Vmovntdq_m256_ymm)] }, }, invalid, invalid, }, // E8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubsb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubsb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubsb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubsb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpminsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpminsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpminsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpminsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpor_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpor_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpor_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpor_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddsb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddsb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddsb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddsb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaxsw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaxsw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaxsw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaxsw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpxor_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpxor_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpxor_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpxor_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, // F0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vlddqu_xmm_m128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VM)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vlddqu_ymm_m256)] }, + new object[] { VectorLength, + new object[] { VM, xmm0, code[nameof(Code.VEX_Vlddqu_xmm_m128)] }, + new object[] { VM, ymm0, code[nameof(Code.VEX_Vlddqu_ymm_m256)] }, }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllw_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsllw_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsllw_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpslld_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpslld_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpslld_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpslld_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_4)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.YMM0)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsllq_ymm_ymm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHW_4, xmm0, xmm0, xmm0, code[nameof(Code.VEX_Vpsllq_xmm_xmm_xmmm128)] }, + new object[] { VHW_4, ymm0, ymm0, xmm0, code[nameof(Code.VEX_Vpsllq_ymm_ymm_xmmm128)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmuludq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmuludq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmuludq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmuludq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpmaddwd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpmaddwd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpmaddwd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpmaddwd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsadbw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsadbw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsadbw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsadbw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.rDI_VX_RX)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vmaskmovdqu_rDI_xmm_xmm)] }, + new object[] { VectorLength, + new object[] { rDI_VX_RX, xmm0, code[nameof(Code.VEX_Vmaskmovdqu_rDI_xmm_xmm)] }, invalid, }, invalid, @@ -4613,65 +4684,65 @@ namespace Generator.Decoder { }, // F8 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubd_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpsubq_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpsubq_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpsubq_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpsubq_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddb_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddb_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddb_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddb_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddw_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddw_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddw_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddw_ymm_ymm_ymmm256)] }, }, invalid, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_4)], + new object[] { MandatoryPrefix2_4, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.VEX_Vpaddd_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.VEX_Vpaddd_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHW_2, xmm0, code[nameof(Code.VEX_Vpaddd_xmm_xmm_xmmm128)] }, + new object[] { VHW_2, ymm0, code[nameof(Code.VEX_Vpaddd_ymm_ymm_ymmm256)] }, }, invalid, invalid, diff --git a/src/csharp/Intel/Generator/Decoder/DecoderTable_XOP.cs b/src/csharp/Intel/Generator/Decoder/DecoderTable_XOP.cs index 4b349817a..97bc0c58f 100644 --- a/src/csharp/Intel/Generator/Decoder/DecoderTable_XOP.cs +++ b/src/csharp/Intel/Generator/Decoder/DecoderTable_XOP.cs @@ -11,54 +11,73 @@ namespace Generator.Decoder { public const string Handlers_MAP10 = nameof(Handlers_MAP10); public static (string name, object?[] handlers)[] CreateHandlers(GenTypes genTypes) { - var vexEnum = genTypes[TypeIds.VexOpCodeHandlerKind]; - var codeEnum = genTypes[TypeIds.Code]; - var registerEnum = genTypes[TypeIds.Register]; + var kind = genTypes[TypeIds.VexOpCodeHandlerKind]; + var code = genTypes[TypeIds.Code]; + var reg = genTypes[TypeIds.Register]; - var invalid = new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Invalid)] }; + var Group = kind[nameof(VexOpCodeHandlerKind.Group)]; + var W = kind[nameof(VexOpCodeHandlerKind.W)]; + var MandatoryPrefix2_1 = kind[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)]; + var VectorLength = kind[nameof(VexOpCodeHandlerKind.VectorLength)]; + var Gv_Ev_Id = kind[nameof(VexOpCodeHandlerKind.Gv_Ev_Id)]; + var Hv_Ed_Id = kind[nameof(VexOpCodeHandlerKind.Hv_Ed_Id)]; + var Hv_Ev = kind[nameof(VexOpCodeHandlerKind.Hv_Ev)]; + var RdRq = kind[nameof(VexOpCodeHandlerKind.RdRq)]; + var VHIs4W = kind[nameof(VexOpCodeHandlerKind.VHIs4W)]; + var VHW_2 = kind[nameof(VexOpCodeHandlerKind.VHW_2)]; + var VHWIb_2 = kind[nameof(VexOpCodeHandlerKind.VHWIb_2)]; + var VHWIs4 = kind[nameof(VexOpCodeHandlerKind.VHWIs4)]; + var VW_2 = kind[nameof(VexOpCodeHandlerKind.VW_2)]; + var VWH = kind[nameof(VexOpCodeHandlerKind.VWH)]; + var VWIb_2 = kind[nameof(VexOpCodeHandlerKind.VWIb_2)]; + + var xmm0 = reg[nameof(Register.XMM0)]; + var ymm0 = reg[nameof(Register.YMM0)]; + + var invalid = new object[] { kind[nameof(VexOpCodeHandlerKind.Invalid)] }; var handlers = new (string name, object?[] handlers)[] { ("grp_MAP9_01", new object[8] { invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blcfill_r32_rm32)], codeEnum[nameof(Code.XOP_Blcfill_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blcfill_r32_rm32)], code[nameof(Code.XOP_Blcfill_r64_rm64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blsfill_r32_rm32)], codeEnum[nameof(Code.XOP_Blsfill_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blsfill_r32_rm32)], code[nameof(Code.XOP_Blsfill_r64_rm64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blcs_r32_rm32)], codeEnum[nameof(Code.XOP_Blcs_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blcs_r32_rm32)], code[nameof(Code.XOP_Blcs_r64_rm64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Tzmsk_r32_rm32)], codeEnum[nameof(Code.XOP_Tzmsk_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Tzmsk_r32_rm32)], code[nameof(Code.XOP_Tzmsk_r64_rm64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blcic_r32_rm32)], codeEnum[nameof(Code.XOP_Blcic_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blcic_r32_rm32)], code[nameof(Code.XOP_Blcic_r64_rm64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blsic_r32_rm32)], codeEnum[nameof(Code.XOP_Blsic_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blsic_r32_rm32)], code[nameof(Code.XOP_Blsic_r64_rm64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_T1mskc_r32_rm32)], codeEnum[nameof(Code.XOP_T1mskc_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_T1mskc_r32_rm32)], code[nameof(Code.XOP_T1mskc_r64_rm64)] }, invalid, } }, @@ -67,9 +86,9 @@ namespace Generator.Decoder { ("grp_MAP9_02", new object[8] { invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blcmsk_r32_rm32)], codeEnum[nameof(Code.XOP_Blcmsk_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blcmsk_r32_rm32)], code[nameof(Code.XOP_Blcmsk_r64_rm64)] }, invalid, } }, @@ -77,9 +96,9 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ev)], codeEnum[nameof(Code.XOP_Blci_r32_rm32)], codeEnum[nameof(Code.XOP_Blci_r64_rm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ev, code[nameof(Code.XOP_Blci_r32_rm32)], code[nameof(Code.XOP_Blci_r64_rm64)] }, invalid, } }, @@ -88,15 +107,15 @@ namespace Generator.Decoder { ("grp_MAP9_12", new object[8] { - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RdRq)], codeEnum[nameof(Code.XOP_Llwpcb_r32)], codeEnum[nameof(Code.XOP_Llwpcb_r64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { RdRq, code[nameof(Code.XOP_Llwpcb_r32)], code[nameof(Code.XOP_Llwpcb_r64)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.RdRq)], codeEnum[nameof(Code.XOP_Slwpcb_r32)], codeEnum[nameof(Code.XOP_Slwpcb_r64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { RdRq, code[nameof(Code.XOP_Slwpcb_r32)], code[nameof(Code.XOP_Slwpcb_r64)] }, invalid, } }, @@ -110,15 +129,15 @@ namespace Generator.Decoder { ("grp_MAP10_12", new object[8] { - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ed_Id)], codeEnum[nameof(Code.XOP_Lwpins_r32_rm32_imm32)], codeEnum[nameof(Code.XOP_Lwpins_r64_rm32_imm32)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ed_Id, code[nameof(Code.XOP_Lwpins_r32_rm32_imm32)], code[nameof(Code.XOP_Lwpins_r64_rm32_imm32)] }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Hv_Ed_Id)], codeEnum[nameof(Code.XOP_Lwpval_r32_rm32_imm32)], codeEnum[nameof(Code.XOP_Lwpval_r64_rm32_imm32)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Hv_Ed_Id, code[nameof(Code.XOP_Lwpval_r32_rm32_imm32)], code[nameof(Code.XOP_Lwpval_r64_rm32_imm32)] }, invalid, } }, @@ -298,28 +317,28 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacssww_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacssww_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacsswd_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacsswd_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacssdql_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacssdql_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, @@ -333,19 +352,19 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacssdd_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacssdd_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacssdqh_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacssdqh_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, @@ -358,28 +377,28 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacsww_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacsww_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacswd_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacswd_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacsdql_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacsdql_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, @@ -393,19 +412,19 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacsdd_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacsdd_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmacsdqh_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmacsdqh_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, @@ -415,36 +434,36 @@ namespace Generator.Decoder { // A0 invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcmov_xmm_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.XOP_Vpcmov_ymm_ymm_ymmm256_ymm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpcmov_xmm_xmm_xmmm128_xmm)] }, + new object[] { VHWIs4, ymm0, code[nameof(Code.XOP_Vpcmov_ymm_ymm_ymmm256_ymm)] }, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcmov_xmm_xmm_xmm_xmmm128)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.XOP_Vpcmov_ymm_ymm_ymm_ymmm256)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.XOP_Vpcmov_xmm_xmm_xmm_xmmm128)] }, + new object[] { VHIs4W, ymm0, code[nameof(Code.XOP_Vpcmov_ymm_ymm_ymm_ymmm256)] }, } } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpperm_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { W, + new object[] { VectorLength, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpperm_xmm_xmm_xmmm128_xmm)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHIs4W)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpperm_xmm_xmm_xmm_xmmm128)] }, + new object[] { VectorLength, + new object[] { VHIs4W, xmm0, code[nameof(Code.XOP_Vpperm_xmm_xmm_xmm_xmmm128)] }, invalid, } } }, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmadcsswd_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmadcsswd_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, @@ -469,10 +488,10 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIs4)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpmadcswd_xmm_xmm_xmmm128_xmm)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIs4, xmm0, code[nameof(Code.XOP_Vpmadcswd_xmm_xmm_xmmm128_xmm)] }, invalid, }, invalid, @@ -491,37 +510,37 @@ namespace Generator.Decoder { invalid, // C0 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotb_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWIb_2, xmm0, code[nameof(Code.XOP_Vprotb_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotw_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWIb_2, xmm0, code[nameof(Code.XOP_Vprotw_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotd_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWIb_2, xmm0, code[nameof(Code.XOP_Vprotd_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotq_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWIb_2, xmm0, code[nameof(Code.XOP_Vprotq_xmm_xmmm128_imm8)] }, invalid, }, invalid, @@ -537,37 +556,37 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomb_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomb_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomw_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomw_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomd_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomd_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomq_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomq_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, @@ -609,37 +628,37 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomub_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomub_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomuw_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomuw_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomud_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomud_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHWIb_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpcomuq_xmm_xmm_xmmm128_imm8)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VHWIb_2, xmm0, code[nameof(Code.XOP_Vpcomuq_xmm_xmm_xmmm128_imm8)] }, invalid, }, invalid, @@ -671,8 +690,8 @@ namespace Generator.Decoder { new object[0x100] { // 00 invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "grp_MAP9_01" }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "grp_MAP9_02" }, + new object[] { Group, "grp_MAP9_01" }, + new object[] { Group, "grp_MAP9_02" }, invalid, invalid, invalid, @@ -692,7 +711,7 @@ namespace Generator.Decoder { // 10 invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "grp_MAP9_12" }, + new object[] { Group, "grp_MAP9_12" }, invalid, invalid, invalid, @@ -830,43 +849,43 @@ namespace Generator.Decoder { invalid, // 80 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vfrczps_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vfrczps_xmm_xmmm128)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.XOP_Vfrczps_ymm_ymmm256)] }, + new object[] { W, + new object[] { VW_2, ymm0, code[nameof(Code.XOP_Vfrczps_ymm_ymmm256)] }, invalid, } } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vfrczpd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vfrczpd_xmm_xmmm128)] }, invalid, }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.YMM0)], codeEnum[nameof(Code.XOP_Vfrczpd_ymm_ymmm256)] }, + new object[] { W, + new object[] { VW_2, ymm0, code[nameof(Code.XOP_Vfrczpd_ymm_ymmm256)] }, invalid, } } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vfrczss_xmm_xmmm32)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vfrczss_xmm_xmmm32)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vfrczsd_xmm_xmmm64)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vfrczsd_xmm_xmmm64)] }, invalid, }, invalid, @@ -888,112 +907,112 @@ namespace Generator.Decoder { invalid, // 90 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotb_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotb_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vprotb_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vprotb_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotw_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotw_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vprotw_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vprotw_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotd_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotd_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vprotd_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vprotd_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotq_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vprotq_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vprotq_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vprotq_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshlb_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshlb_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshlb_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshlb_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshlw_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshlw_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshlw_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshlw_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshld_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshld_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshld_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshld_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshlq_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshlq_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshlq_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshlq_xmm_xmm_xmmm128)] }, }, invalid, } }, // 98 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshab_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshab_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshab_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshab_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshaw_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshaw_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshaw_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshaw_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshad_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshad_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshad_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshad_xmm_xmm_xmmm128)] }, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VWH)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshaq_xmm_xmmm128_xmm)] }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VHW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vpshaq_xmm_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VWH, xmm0, code[nameof(Code.XOP_Vpshaq_xmm_xmmm128_xmm)] }, + new object[] { VHW_2, xmm0, code[nameof(Code.XOP_Vpshaq_xmm_xmm_xmmm128)] }, }, invalid, } @@ -1045,28 +1064,28 @@ namespace Generator.Decoder { // C0 invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddbw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddbw_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddbd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddbd_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddbq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddbq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1074,19 +1093,19 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddwd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddwd_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddwq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddwq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1097,10 +1116,10 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphadddq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphadddq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1113,28 +1132,28 @@ namespace Generator.Decoder { // D0 invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddubw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddubw_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddubd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddubd_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddubq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddubq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1142,19 +1161,19 @@ namespace Generator.Decoder { }, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphadduwd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphadduwd_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphadduwq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphadduwq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1165,10 +1184,10 @@ namespace Generator.Decoder { invalid, invalid, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphaddudq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphaddudq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1181,28 +1200,28 @@ namespace Generator.Decoder { // E0 invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphsubbw_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphsubbw_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphsubwd_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphsubwd_xmm_xmmm128)] }, invalid, }, invalid, } }, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.W)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VW_2)], registerEnum[nameof(Register.XMM0)], codeEnum[nameof(Code.XOP_Vphsubdq_xmm_xmmm128)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { W, + new object[] { VW_2, xmm0, code[nameof(Code.XOP_Vphsubdq_xmm_xmmm128)] }, invalid, }, invalid, @@ -1267,14 +1286,14 @@ namespace Generator.Decoder { invalid, // 10 - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.MandatoryPrefix2_1)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.VectorLength)], - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Gv_Ev_Id)], codeEnum[nameof(Code.XOP_Bextr_r32_rm32_imm32)], codeEnum[nameof(Code.XOP_Bextr_r64_rm64_imm32)] }, + new object[] { MandatoryPrefix2_1, + new object[] { VectorLength, + new object[] { Gv_Ev_Id, code[nameof(Code.XOP_Bextr_r32_rm32_imm32)], code[nameof(Code.XOP_Bextr_r64_rm64_imm32)] }, invalid, } }, invalid, - new object[] { vexEnum[nameof(VexOpCodeHandlerKind.Group)], "grp_MAP10_12" }, + new object[] { Group, "grp_MAP10_12" }, invalid, invalid, invalid,