mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
7531c61332
The only valid (embedded or explicit) prefix being the data size one (which is a fairly common pattern), avoid going through prefix_table[]. Instead extend the "required prefix" logic to also handle PREFIX_DATA alone in a table entry, now used to identify this case. This requires moving the (adjusted) ->prefix_requirement logic ahead of the printing of stray prefixes, as the latter needs to observe the new setting of PREFIX_DATA in used_prefixes. Also add PREFIX_OPCODE on related entries when previously there was mistakenly no decode step through prefix_table[].
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
/* REG_EVEX_0F71 */
|
|
{
|
|
{ Bad_Opcode },
|
|
{ Bad_Opcode },
|
|
{ "vpsrlw", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
{ Bad_Opcode },
|
|
{ "vpsraw", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
{ Bad_Opcode },
|
|
{ "vpsllw", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
},
|
|
/* REG_EVEX_0F72 */
|
|
{
|
|
{ "vpror%DQ", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
{ "vprol%DQ", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
{ VEX_W_TABLE (EVEX_W_0F72_R_2) },
|
|
{ Bad_Opcode },
|
|
{ "vpsra%DQ", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
{ Bad_Opcode },
|
|
{ VEX_W_TABLE (EVEX_W_0F72_R_6) },
|
|
},
|
|
/* REG_EVEX_0F73 */
|
|
{
|
|
{ Bad_Opcode },
|
|
{ Bad_Opcode },
|
|
{ VEX_W_TABLE (EVEX_W_0F73_R_2) },
|
|
{ "vpsrldq", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
{ Bad_Opcode },
|
|
{ Bad_Opcode },
|
|
{ VEX_W_TABLE (EVEX_W_0F73_R_6) },
|
|
{ "vpslldq", { Vex, EXx, Ib }, PREFIX_DATA },
|
|
},
|
|
/* REG_EVEX_0F38C6 */
|
|
{
|
|
{ Bad_Opcode },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C6_REG_1) },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C6_REG_2) },
|
|
{ Bad_Opcode },
|
|
{ Bad_Opcode },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C6_REG_5) },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C6_REG_6) },
|
|
},
|
|
/* REG_EVEX_0F38C7 */
|
|
{
|
|
{ Bad_Opcode },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C7_REG_1) },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C7_REG_2) },
|
|
{ Bad_Opcode },
|
|
{ Bad_Opcode },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C7_REG_5) },
|
|
{ MOD_TABLE (MOD_EVEX_0F38C7_REG_6) },
|
|
},
|