diff options
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 26 | ||||
-rw-r--r-- | opcodes/i386-dis-evex-len.h | 16 | ||||
-rw-r--r-- | opcodes/i386-dis-evex-mod.h | 32 | ||||
-rw-r--r-- | opcodes/i386-dis-evex-w.h | 16 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 24 |
5 files changed, 90 insertions, 24 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index edd60b9..1ee200f 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,31 @@ 2020-07-06 Jan Beulich <jbeulich@suse.com> + * i386-dis.c (MOD_EVEX_0F381A_P_2_W_0, MOD_EVEX_0F381A_P_2_W_1, + MOD_EVEX_0F381B_P_2_W_0, MOD_EVEX_0F381B_P_2_W_1, + MOD_EVEX_0F385A_P_2_W_0, MOD_EVEX_0F385A_P_2_W_1, + MOD_EVEX_0F385B_P_2_W_0, MOD_EVEX_0F385B_P_2_W_1): New + enumerators. + (EVEX_LEN_0F381A_P_2_W_0, EVEX_LEN_0F381A_P_2_W_1, + EVEX_LEN_0F381B_P_2_W_0, EVEX_LEN_0F381B_P_2_W_1, + EVEX_LEN_0F385A_P_2_W_0, EVEX_LEN_0F385A_P_2_W_1, + EVEX_LEN_0F385B_P_2_W_0, EVEX_LEN_0F385B_P_2_W_1): Rename to ... + (EVEX_LEN_0F381A_P_2_W_0_M_0, EVEX_LEN_0F381A_P_2_W_1_M_0, + EVEX_LEN_0F381B_P_2_W_0_M_0, EVEX_LEN_0F381B_P_2_W_1_M_0, + EVEX_LEN_0F385A_P_2_W_0_M_0, EVEX_LEN_0F385A_P_2_W_1_M_0, + EVEX_LEN_0F385B_P_2_W_0_M_0, EVEX_LEN_0F385B_P_2_W_1_M_0): ... + these, respectively. + * i386-dis-evex-len.h: Adjust comments. + * i386-dis-evex-mod.h: New MOD_EVEX_0F381A_P_2_W_0, + MOD_EVEX_0F381A_P_2_W_1, MOD_EVEX_0F381B_P_2_W_0, + MOD_EVEX_0F381B_P_2_W_1, MOD_EVEX_0F385A_P_2_W_0, + MOD_EVEX_0F385A_P_2_W_1, MOD_EVEX_0F385B_P_2_W_0, and + MOD_EVEX_0F385B_P_2_W_1 table entries. + * i386-dis-evex-w.h: Reference mod_table[] for + EVEX_W_0F381A_P_2, EVEX_W_0F381B_P_2, EVEX_W_0F385A_P_2, and + EVEX_W_0F385B_P_2. + +2020-07-06 Jan Beulich <jbeulich@suse.com> + * i386-dis-evex-len.h (vbroadcastf32x8, vbroadcasti32x8, vinsertf32x8, vinsertf64x4, vextractf32x8, vextractf64x4): Use EXymm. diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h index 278d722..f844ed0 100644 --- a/opcodes/i386-dis-evex-len.h +++ b/opcodes/i386-dis-evex-len.h @@ -50,28 +50,28 @@ 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, EXymm }, 0 }, }, - /* EVEX_LEN_0F381B_P_2_W_1 */ + /* EVEX_LEN_0F381B_P_2_W_1_M_0 */ { { Bad_Opcode }, { Bad_Opcode }, @@ -85,28 +85,28 @@ static const struct dis386 evex_len_table[][3] = { { "vperm%LW", { XM, Vex, EXx }, 0 }, }, - /* EVEX_LEN_0F385A_P_2_W_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, EXymm }, 0 }, }, - /* EVEX_LEN_0F385B_P_2_W_1 */ + /* EVEX_LEN_0F385B_P_2_W_1_M_0 */ { { Bad_Opcode }, { Bad_Opcode }, diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h index 657e40a..0c81822 100644 --- a/opcodes/i386-dis-evex-mod.h +++ b/opcodes/i386-dis-evex-mod.h @@ -28,6 +28,38 @@ /* MOD_EVEX_0F2B */ { "vmovntpX", { EXx, XM }, PREFIX_OPCODE }, }, + /* MOD_EVEX_0F381A_P_2_W_0 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F381A_P_2_W_0_M_0) }, + }, + /* MOD_EVEX_0F381A_P_2_W_1 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F381A_P_2_W_1_M_0) }, + }, + /* MOD_EVEX_0F381B_P_2_W_0 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F381B_P_2_W_0_M_0) }, + }, + /* MOD_EVEX_0F381B_P_2_W_1 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F381B_P_2_W_1_M_0) }, + }, + /* MOD_EVEX_0F385A_P_2_W_0 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F385A_P_2_W_0_M_0) }, + }, + /* MOD_EVEX_0F385A_P_2_W_1 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F385A_P_2_W_1_M_0) }, + }, + /* MOD_EVEX_0F385B_P_2_W_0 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F385B_P_2_W_0_M_0) }, + }, + /* MOD_EVEX_0F385B_P_2_W_1 */ + { + { EVEX_LEN_TABLE (EVEX_LEN_0F385B_P_2_W_1_M_0) }, + }, { /* MOD_EVEX_0F38C6_REG_1 */ { PREFIX_TABLE (PREFIX_EVEX_0F38C6_REG_1) }, diff --git a/opcodes/i386-dis-evex-w.h b/opcodes/i386-dis-evex-w.h index 86cb68e..1370c5c 100644 --- a/opcodes/i386-dis-evex-w.h +++ b/opcodes/i386-dis-evex-w.h @@ -397,13 +397,13 @@ }, /* EVEX_W_0F381A_P_2 */ { - { EVEX_LEN_TABLE (EVEX_LEN_0F381A_P_2_W_0) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F381A_P_2_W_1) }, + { MOD_TABLE (MOD_EVEX_0F381A_P_2_W_0) }, + { MOD_TABLE (MOD_EVEX_0F381A_P_2_W_1) }, }, /* EVEX_W_0F381B_P_2 */ { - { EVEX_LEN_TABLE (EVEX_LEN_0F381B_P_2_W_0) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F381B_P_2_W_1) }, + { MOD_TABLE (MOD_EVEX_0F381B_P_2_W_0) }, + { MOD_TABLE (MOD_EVEX_0F381B_P_2_W_1) }, }, /* EVEX_W_0F381E_P_2 */ { @@ -559,13 +559,13 @@ }, /* EVEX_W_0F385A_P_2 */ { - { EVEX_LEN_TABLE (EVEX_LEN_0F385A_P_2_W_0) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F385A_P_2_W_1) }, + { MOD_TABLE (MOD_EVEX_0F385A_P_2_W_0) }, + { MOD_TABLE (MOD_EVEX_0F385A_P_2_W_1) }, }, /* EVEX_W_0F385B_P_2 */ { - { EVEX_LEN_TABLE (EVEX_LEN_0F385B_P_2_W_0) }, - { EVEX_LEN_TABLE (EVEX_LEN_0F385B_P_2_W_1) }, + { MOD_TABLE (MOD_EVEX_0F385B_P_2_W_0) }, + { MOD_TABLE (MOD_EVEX_0F385B_P_2_W_1) }, }, /* EVEX_W_0F3862_P_2 */ { diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 55af1eb..3133d8e 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -932,6 +932,14 @@ enum MOD_EVEX_0F16_PREFIX_2, MOD_EVEX_0F17, MOD_EVEX_0F2B, + MOD_EVEX_0F381A_P_2_W_0, + MOD_EVEX_0F381A_P_2_W_1, + MOD_EVEX_0F381B_P_2_W_0, + MOD_EVEX_0F381B_P_2_W_1, + MOD_EVEX_0F385A_P_2_W_0, + MOD_EVEX_0F385A_P_2_W_1, + MOD_EVEX_0F385B_P_2_W_0, + MOD_EVEX_0F385B_P_2_W_1, MOD_EVEX_0F38C6_REG_1, MOD_EVEX_0F38C6_REG_2, MOD_EVEX_0F38C6_REG_5, @@ -1821,15 +1829,15 @@ enum EVEX_LEN_0F3816_P_2, EVEX_LEN_0F3819_P_2_W_0, EVEX_LEN_0F3819_P_2_W_1, - EVEX_LEN_0F381A_P_2_W_0, - EVEX_LEN_0F381A_P_2_W_1, - EVEX_LEN_0F381B_P_2_W_0, - EVEX_LEN_0F381B_P_2_W_1, + EVEX_LEN_0F381A_P_2_W_0_M_0, + EVEX_LEN_0F381A_P_2_W_1_M_0, + EVEX_LEN_0F381B_P_2_W_0_M_0, + EVEX_LEN_0F381B_P_2_W_1_M_0, EVEX_LEN_0F3836_P_2, - EVEX_LEN_0F385A_P_2_W_0, - EVEX_LEN_0F385A_P_2_W_1, - EVEX_LEN_0F385B_P_2_W_0, - EVEX_LEN_0F385B_P_2_W_1, + EVEX_LEN_0F385A_P_2_W_0_M_0, + EVEX_LEN_0F385A_P_2_W_1_M_0, + EVEX_LEN_0F385B_P_2_W_0_M_0, + EVEX_LEN_0F385B_P_2_W_1_M_0, EVEX_LEN_0F38C6_REG_1_PREFIX_2, EVEX_LEN_0F38C6_REG_2_PREFIX_2, EVEX_LEN_0F38C6_REG_5_PREFIX_2, |