aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis-evex-mod.h
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-03-10 08:16:54 +0100
committerJan Beulich <jbeulich@suse.com>2021-03-10 08:16:54 +0100
commitfc681dd6a1264a1560a711a6b69cb5a229d2316a (patch)
treede3c6d563c4b6d0966ca2da84a7fc94e1f17482b /opcodes/i386-dis-evex-mod.h
parent13954a31199aac7d5bcb7d614f73cead4fd3d69c (diff)
downloadfsf-binutils-gdb-fc681dd6a1264a1560a711a6b69cb5a229d2316a.zip
fsf-binutils-gdb-fc681dd6a1264a1560a711a6b69cb5a229d2316a.tar.gz
fsf-binutils-gdb-fc681dd6a1264a1560a711a6b69cb5a229d2316a.tar.bz2
x86: re-arrange order of decode for various EVEX opcodes
The order of decodes influences the overall number of table entries. Reduce table size quite a bit by first decoding few-alternatives attributes common to all valid leaves. This also adds a PREFIX_DATA 7531c61332db ("x86: simplify decode of opcodes valid with (embedded) 66 prefix only") missed to apply to vbroadcastf64x4.
Diffstat (limited to 'opcodes/i386-dis-evex-mod.h')
-rw-r--r--opcodes/i386-dis-evex-mod.h64
1 files changed, 12 insertions, 52 deletions
diff --git a/opcodes/i386-dis-evex-mod.h b/opcodes/i386-dis-evex-mod.h
index 4259368..a1cd69a 100644
--- a/opcodes/i386-dis-evex-mod.h
+++ b/opcodes/i386-dis-evex-mod.h
@@ -28,21 +28,13 @@
/* MOD_EVEX_0F2B */
{ "vmovntpX", { EXx, XM }, PREFIX_OPCODE },
},
- /* MOD_EVEX_0F381A_W_0 */
+ /* MOD_EVEX_0F381A */
{
- { EVEX_LEN_TABLE (EVEX_LEN_0F381A_W_0_M_0) },
+ { EVEX_LEN_TABLE (EVEX_LEN_0F381A_M_0) },
},
- /* MOD_EVEX_0F381A_W_1 */
+ /* MOD_EVEX_0F381B */
{
- { EVEX_LEN_TABLE (EVEX_LEN_0F381A_W_1_M_0) },
- },
- /* MOD_EVEX_0F381B_W_0 */
- {
- { EVEX_LEN_TABLE (EVEX_LEN_0F381B_W_0_M_0) },
- },
- /* MOD_EVEX_0F381B_W_1 */
- {
- { EVEX_LEN_TABLE (EVEX_LEN_0F381B_W_1_M_0) },
+ { EVEX_LEN_TABLE (EVEX_LEN_0F381B_M_0) },
},
/* MOD_EVEX_0F3828_P_1 */
{
@@ -64,21 +56,13 @@
{ Bad_Opcode },
{ "vpbroadcastmw2d", { XM, MaskE }, 0 },
},
- /* MOD_EVEX_0F385A_W_0 */
- {
- { EVEX_LEN_TABLE (EVEX_LEN_0F385A_W_0_M_0) },
- },
- /* MOD_EVEX_0F385A_W_1 */
- {
- { EVEX_LEN_TABLE (EVEX_LEN_0F385A_W_1_M_0) },
- },
- /* MOD_EVEX_0F385B_W_0 */
+ /* MOD_EVEX_0F385A */
{
- { EVEX_LEN_TABLE (EVEX_LEN_0F385B_W_0_M_0) },
+ { EVEX_LEN_TABLE (EVEX_LEN_0F385A_M_0) },
},
- /* MOD_EVEX_0F385B_W_1 */
+ /* MOD_EVEX_0F385B */
{
- { EVEX_LEN_TABLE (EVEX_LEN_0F385B_W_1_M_0) },
+ { EVEX_LEN_TABLE (EVEX_LEN_0F385B_M_0) },
},
/* MOD_EVEX_0F387A_W_0 */
{
@@ -96,34 +80,10 @@
{ "vpbroadcastK", { XM, Edq }, PREFIX_DATA },
},
{
- /* MOD_EVEX_0F38C6_REG_1 */
- { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_R_1_M_0) },
- },
- {
- /* MOD_EVEX_0F38C6_REG_2 */
- { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_R_2_M_0) },
- },
- {
- /* MOD_EVEX_0F38C6_REG_5 */
- { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_R_5_M_0) },
- },
- {
- /* MOD_EVEX_0F38C6_REG_6 */
- { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_R_6_M_0) },
- },
- {
- /* MOD_EVEX_0F38C7_REG_1 */
- { VEX_W_TABLE (EVEX_W_0F38C7_R_1_M_0) },
- },
- {
- /* MOD_EVEX_0F38C7_REG_2 */
- { VEX_W_TABLE (EVEX_W_0F38C7_R_2_M_0) },
- },
- {
- /* MOD_EVEX_0F38C7_REG_5 */
- { VEX_W_TABLE (EVEX_W_0F38C7_R_5_M_0) },
+ /* MOD_EVEX_0F38C6 */
+ { EVEX_LEN_TABLE (EVEX_LEN_0F38C6_M_0) },
},
{
- /* MOD_EVEX_0F38C7_REG_6 */
- { VEX_W_TABLE (EVEX_W_0F38C7_R_6_M_0) },
+ /* MOD_EVEX_0F38C7 */
+ { EVEX_LEN_TABLE (EVEX_LEN_0F38C7_M_0) },
},