X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=opcodes%2Fi386-dis-evex-len.h;h=f844ed05face497be709700d2c11ad090760f289;hb=6384fd9e1d3f8e692c8686a104caec23cf2fc05f;hp=ce5819959808fffb6c5c2ab6b849357c5729505c;hpb=e395f487b3758b3de99fddd2ef15a799e9fc1203;p=binutils-gdb.git diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h index ce581995980..f844ed05fac 100644 --- a/opcodes/i386-dis-evex-len.h +++ b/opcodes/i386-dis-evex-len.h @@ -14,11 +14,28 @@ static const struct dis386 evex_len_table[][3] = { { "vmovK", { Edq, XMScalar }, 0 }, }, + /* EVEX_LEN_0FC4_P_2 */ + { + { "vpinsrw", { XM, Vex128, Edqw, Ib }, 0 }, + }, + + /* EVEX_LEN_0FC5_P_2 */ + { + { "vpextrw", { Gdq, XS, Ib }, 0 }, + }, + /* EVEX_LEN_0FD6_P_2 */ { { VEX_W_TABLE (EVEX_W_0FD6_P_2) }, }, + /* EVEX_LEN_0F3816_P_2 */ + { + { Bad_Opcode }, + { "vpermp%XW", { XM, Vex, EXx }, 0 }, + { "vpermp%XW", { XM, Vex, EXx }, 0 }, + }, + /* EVEX_LEN_0F3819_P_2_W_0 */ { { Bad_Opcode }, @@ -33,56 +50,63 @@ static const struct dis386 evex_len_table[][3] = { { "vbroadcastsd", { XM, EXxmm_mq }, 0 }, }, - /* EVEX_LEN_0F381A_P_2_W_0 */ + /* EVEX_LEN_0F381A_P_2_W_0_M_0 */ { { Bad_Opcode }, { "vbroadcastf32x4", { XM, EXxmm }, 0 }, { "vbroadcastf32x4", { XM, EXxmm }, 0 }, }, - /* EVEX_LEN_0F381A_P_2_W_1 */ + /* EVEX_LEN_0F381A_P_2_W_1_M_0 */ { { Bad_Opcode }, { "vbroadcastf64x2", { XM, EXxmm }, 0 }, { "vbroadcastf64x2", { XM, EXxmm }, 0 }, }, - /* EVEX_LEN_0F381B_P_2_W_0 */ + /* EVEX_LEN_0F381B_P_2_W_0_M_0 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vbroadcastf32x8", { XM, EXxmmq }, 0 }, + { "vbroadcastf32x8", { XM, EXymm }, 0 }, }, - /* EVEX_LEN_0F381B_P_2_W_1 */ + /* EVEX_LEN_0F381B_P_2_W_1_M_0 */ { { Bad_Opcode }, { Bad_Opcode }, { "vbroadcastf64x4", { XM, EXymm }, 0 }, }, - /* EVEX_LEN_0F385A_P_2_W_0 */ + /* EVEX_LEN_0F3836_P_2 */ + { + { Bad_Opcode }, + { "vperm%LW", { XM, Vex, EXx }, 0 }, + { "vperm%LW", { XM, Vex, EXx }, 0 }, + }, + + /* EVEX_LEN_0F385A_P_2_W_0_M_0 */ { { Bad_Opcode }, { "vbroadcasti32x4", { XM, EXxmm }, 0 }, { "vbroadcasti32x4", { XM, EXxmm }, 0 }, }, - /* EVEX_LEN_0F385A_P_2_W_1 */ + /* EVEX_LEN_0F385A_P_2_W_1_M_0 */ { { Bad_Opcode }, { "vbroadcasti64x2", { XM, EXxmm }, 0 }, { "vbroadcasti64x2", { XM, EXxmm }, 0 }, }, - /* EVEX_LEN_0F385B_P_2_W_0 */ + /* EVEX_LEN_0F385B_P_2_W_0_M_0 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vbroadcasti32x8", { XM, EXxmmq }, 0 }, + { "vbroadcasti32x8", { XM, EXymm }, 0 }, }, - /* EVEX_LEN_0F385B_P_2_W_1 */ + /* EVEX_LEN_0F385B_P_2_W_1_M_0 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -173,6 +197,40 @@ static const struct dis386 evex_len_table[][3] = { { "vscatterpf1qpd", { MVexVSIBQWpX }, 0 }, }, + /* EVEX_LEN_0F3A00_P_2_W_1 */ + { + { Bad_Opcode }, + { "vpermq", { XM, EXx, Ib }, 0 }, + { "vpermq", { XM, EXx, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A01_P_2_W_1 */ + { + { Bad_Opcode }, + { "vpermpd", { XM, EXx, Ib }, 0 }, + { "vpermpd", { XM, EXx, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A14_P_2 */ + { + { "vpextrb", { Edqb, XM, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A15_P_2 */ + { + { "vpextrw", { Edqw, XM, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A16_P_2 */ + { + { "vpextrK", { Edq, XM, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A17_P_2 */ + { + { "vextractps", { Edqd, XMM, Ib }, 0 }, + }, + /* EVEX_LEN_0F3A18_P_2_W_0 */ { { Bad_Opcode }, @@ -205,28 +263,43 @@ static const struct dis386 evex_len_table[][3] = { { { Bad_Opcode }, { Bad_Opcode }, - { "vinsertf32x8", { XM, Vex, EXxmmq, Ib }, 0 }, + { "vinsertf32x8", { XM, Vex, EXymm, Ib }, 0 }, }, /* EVEX_LEN_0F3A1A_P_2_W_1 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vinsertf64x4", { XM, Vex, EXxmmq, Ib }, 0 }, + { "vinsertf64x4", { XM, Vex, EXymm, Ib }, 0 }, }, /* EVEX_LEN_0F3A1B_P_2_W_0 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vextractf32x8", { EXxmmq, XM, Ib }, 0 }, + { "vextractf32x8", { EXymm, XM, Ib }, 0 }, }, /* EVEX_LEN_0F3A1B_P_2_W_1 */ { { Bad_Opcode }, { Bad_Opcode }, - { "vextractf64x4", { EXxmmq, XM, Ib }, 0 }, + { "vextractf64x4", { EXymm, XM, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A20_P_2 */ + { + { "vpinsrb", { XM, Vex128, Edqb, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A21_P_2_W_0 */ + { + { "vinsertps", { XMM, Vex, EXxmm_md, Ib }, 0 }, + }, + + /* EVEX_LEN_0F3A22_P_2 */ + { + { "vpinsrK", { XM, Vex128, Edq, Ib }, 0 }, }, /* EVEX_LEN_0F3A23_P_2_W_0 */ @@ -274,29 +347,29 @@ static const struct dis386 evex_len_table[][3] = { /* EVEX_LEN_0F3A3A_P_2_W_0 */ { { Bad_Opcode }, - { "vinserti32x8", { XM, Vex, EXxmmq, Ib }, 0 }, - { "vinserti32x8", { XM, Vex, EXxmmq, Ib }, 0 }, + { Bad_Opcode }, + { "vinserti32x8", { XM, Vex, EXymm, Ib }, 0 }, }, /* EVEX_LEN_0F3A3A_P_2_W_1 */ { { Bad_Opcode }, - { "vinserti64x4", { XM, Vex, EXxmmq, Ib }, 0 }, - { "vinserti64x4", { XM, Vex, EXxmmq, Ib }, 0 }, + { Bad_Opcode }, + { "vinserti64x4", { XM, Vex, EXymm, Ib }, 0 }, }, /* EVEX_LEN_0F3A3B_P_2_W_0 */ { { Bad_Opcode }, - { "vextracti32x8", { EXxmmq, XM, Ib }, 0 }, - { "vextracti32x8", { EXxmmq, XM, Ib }, 0 }, + { Bad_Opcode }, + { "vextracti32x8", { EXymm, XM, Ib }, 0 }, }, /* EVEX_LEN_0F3A3B_P_2_W_1 */ { { Bad_Opcode }, - { "vextracti64x4", { EXxmmq, XM, Ib }, 0 }, - { "vextracti64x4", { EXxmmq, XM, Ib }, 0 }, + { Bad_Opcode }, + { "vextracti64x4", { EXymm, XM, Ib }, 0 }, }, /* EVEX_LEN_0F3A43_P_2_W_0 */