diff options
author | Jan Beulich <jbeulich@suse.com> | 2020-07-06 13:41:27 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2020-07-06 13:41:27 +0200 |
commit | e74d9fa9cf7cbbcd290b74564d58456611a019bf (patch) | |
tree | 6a390c76c163f5cfe506794d3dd657950f85d0ab /opcodes/i386-dis-evex-len.h | |
parent | 6431c8015b1d8a75facbd2d0ec6a4f1e98167f72 (diff) | |
download | gdb-e74d9fa9cf7cbbcd290b74564d58456611a019bf.zip gdb-e74d9fa9cf7cbbcd290b74564d58456611a019bf.tar.gz gdb-e74d9fa9cf7cbbcd290b74564d58456611a019bf.tar.bz2 |
x86: AVX512 extract/insert insns need to honor EVEX.L'L
Just like their AVX counterparts do for VEX.L.
At this occasion also make EVEX.W have the same effect as VEX.W on the
printing of VPINSR{B,W}'s operands, bringing them also in sync with
VPEXTR{B,W}.
Diffstat (limited to 'opcodes/i386-dis-evex-len.h')
-rw-r--r-- | opcodes/i386-dis-evex-len.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/opcodes/i386-dis-evex-len.h b/opcodes/i386-dis-evex-len.h index ce58199..51ce98f 100644 --- a/opcodes/i386-dis-evex-len.h +++ b/opcodes/i386-dis-evex-len.h @@ -14,6 +14,16 @@ 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) }, @@ -173,6 +183,26 @@ static const struct dis386 evex_len_table[][3] = { { "vscatterpf1qpd", { MVexVSIBQWpX }, 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 }, @@ -229,6 +259,21 @@ static const struct dis386 evex_len_table[][3] = { { "vextractf64x4", { EXxmmq, 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 */ { { Bad_Opcode }, |