Use some locals

This commit is contained in:
wtfsck 2021-07-07 21:22:06 +02:00
parent 6a21fc867a
commit 7dca7e17ff
4 changed files with 7683 additions and 7274 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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,