diff options
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index a414e8c9b1e..d6b0fdd4ba3 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -943,6 +943,7 @@ enum MOD_VEX_0F385E_X86_64_P_1_W_0, MOD_VEX_0F385E_X86_64_P_2_W_0, MOD_VEX_0F385E_X86_64_P_3_W_0, + MOD_VEX_0F386C_X86_64_W_0, MOD_VEX_0F388C, MOD_VEX_0F388E, MOD_VEX_0F3A30_L_0, @@ -1145,6 +1146,7 @@ enum PREFIX_VEX_0F3851_W_0, PREFIX_VEX_0F385C_X86_64, PREFIX_VEX_0F385E_X86_64, + PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0, PREFIX_VEX_0F3872, PREFIX_VEX_0F38B0_W_0, PREFIX_VEX_0F38B1_W_0, @@ -1298,6 +1300,7 @@ enum X86_64_VEX_0F384B, X86_64_VEX_0F385C, X86_64_VEX_0F385E, + X86_64_VEX_0F386C, X86_64_VEX_0F38E0, X86_64_VEX_0F38E1, X86_64_VEX_0F38E2, @@ -1398,6 +1401,7 @@ enum VEX_LEN_0F385E_X86_64_P_1_W_0_M_0, VEX_LEN_0F385E_X86_64_P_2_W_0_M_0, VEX_LEN_0F385E_X86_64_P_3_W_0_M_0, + VEX_LEN_0F386C_X86_64_W_0_M_1, VEX_LEN_0F38DB, VEX_LEN_0F38F2, VEX_LEN_0F38F3, @@ -1565,6 +1569,7 @@ enum VEX_W_0F385E_X86_64_P_1, VEX_W_0F385E_X86_64_P_2, VEX_W_0F385E_X86_64_P_3, + VEX_W_0F386C_X86_64, VEX_W_0F3872_P_1, VEX_W_0F3878, VEX_W_0F3879, @@ -4119,6 +4124,13 @@ static const struct dis386 prefix_table[][4] = { { VEX_W_TABLE (VEX_W_0F385E_X86_64_P_3) }, }, + /* PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0 */ + { + { "tcmmrlfp16ps", { TMM, EXtmm, VexTmm }, 0 }, + { Bad_Opcode }, + { "tcmmimfp16ps", { TMM, EXtmm, VexTmm }, 0 }, + }, + /* PREFIX_VEX_0F3872 */ { { Bad_Opcode }, @@ -4486,6 +4498,12 @@ static const struct dis386 x86_64_table[][2] = { { PREFIX_TABLE (PREFIX_VEX_0F385E_X86_64) }, }, + /* X86_64_VEX_0F386C */ + { + { Bad_Opcode }, + { VEX_W_TABLE (VEX_W_0F386C_X86_64) }, + }, + /* X86_64_VEX_0F38E0 */ { { Bad_Opcode }, @@ -6461,7 +6479,7 @@ static const struct dis386 vex_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, + { X86_64_TABLE (X86_64_VEX_0F386C) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -7181,6 +7199,11 @@ static const struct dis386 vex_len_table[][2] = { { "tdpbssd", {TMM, EXtmm, VexTmm }, 0 }, }, + /* VEX_LEN_0F386C_X86_64_W_0_M_1 */ + { + { PREFIX_TABLE (PREFIX_VEX_0F386C_X86_64_W_0_M_1_L_0) }, + }, + /* VEX_LEN_0F38DB */ { { "vaesimc", { XM, EXx }, PREFIX_DATA }, @@ -7850,6 +7873,10 @@ static const struct dis386 vex_w_table[][2] = { { MOD_TABLE (MOD_VEX_0F385E_X86_64_P_3_W_0) }, }, { + /* VEX_W_0F386C_X86_64 */ + { MOD_TABLE (MOD_VEX_0F386C_X86_64_W_0) }, + }, + { /* VEX_W_0F3872_P_1 */ { "%XVvcvtneps2bf16%XY", { XMM, EXx }, 0 }, }, @@ -8697,6 +8724,11 @@ static const struct dis386 mod_table[][2] = { { VEX_LEN_TABLE (VEX_LEN_0F385E_X86_64_P_3_W_0_M_0) }, }, { + /* MOD_VEX_0F386C_X86_64_W_0 */ + { Bad_Opcode }, + { VEX_LEN_TABLE (VEX_LEN_0F386C_X86_64_W_0_M_1) }, + }, + { /* MOD_VEX_0F388C */ { "vpmaskmov%DQ", { XM, Vex, Mx }, PREFIX_DATA }, }, |