(root)/
binutils-2.41/
opcodes/
i386-dis-evex.h
       1  static const struct dis386 evex_table[][256] = {
       2    /* EVEX_0F */
       3    {
       4      /* 00 */
       5      { Bad_Opcode },
       6      { Bad_Opcode },
       7      { Bad_Opcode },
       8      { Bad_Opcode },
       9      { Bad_Opcode },
      10      { Bad_Opcode },
      11      { Bad_Opcode },
      12      { Bad_Opcode },
      13      /* 08 */
      14      { Bad_Opcode },
      15      { Bad_Opcode },
      16      { Bad_Opcode },
      17      { Bad_Opcode },
      18      { Bad_Opcode },
      19      { Bad_Opcode },
      20      { Bad_Opcode },
      21      { Bad_Opcode },
      22      /* 10 */
      23      { PREFIX_TABLE (PREFIX_VEX_0F10) },
      24      { PREFIX_TABLE (PREFIX_VEX_0F11) },
      25      { PREFIX_TABLE (PREFIX_VEX_0F12) },
      26      { MOD_TABLE (MOD_VEX_0F13) },
      27      { "%XEvunpcklpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
      28      { "%XEvunpckhpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
      29      { PREFIX_TABLE (PREFIX_VEX_0F16) },
      30      { MOD_TABLE (MOD_VEX_0F17) },
      31      /* 18 */
      32      { Bad_Opcode },
      33      { Bad_Opcode },
      34      { Bad_Opcode },
      35      { Bad_Opcode },
      36      { Bad_Opcode },
      37      { Bad_Opcode },
      38      { Bad_Opcode },
      39      { Bad_Opcode },
      40      /* 20 */
      41      { Bad_Opcode },
      42      { Bad_Opcode },
      43      { Bad_Opcode },
      44      { Bad_Opcode },
      45      { Bad_Opcode },
      46      { Bad_Opcode },
      47      { Bad_Opcode },
      48      { Bad_Opcode },
      49      /* 28 */
      50      { "%XEvmovapX",	{ XM, EXx }, PREFIX_OPCODE },
      51      { "%XEvmovapX",	{ EXxS, XM }, PREFIX_OPCODE },
      52      { PREFIX_TABLE (PREFIX_VEX_0F2A) },
      53      { MOD_TABLE (MOD_VEX_0F2B) },
      54      { PREFIX_TABLE (PREFIX_VEX_0F2C) },
      55      { PREFIX_TABLE (PREFIX_VEX_0F2D) },
      56      { PREFIX_TABLE (PREFIX_VEX_0F2E) },
      57      { PREFIX_TABLE (PREFIX_VEX_0F2F) },
      58      /* 30 */
      59      { Bad_Opcode },
      60      { Bad_Opcode },
      61      { Bad_Opcode },
      62      { Bad_Opcode },
      63      { Bad_Opcode },
      64      { Bad_Opcode },
      65      { Bad_Opcode },
      66      { Bad_Opcode },
      67      /* 38 */
      68      { Bad_Opcode },
      69      { Bad_Opcode },
      70      { Bad_Opcode },
      71      { Bad_Opcode },
      72      { Bad_Opcode },
      73      { Bad_Opcode },
      74      { Bad_Opcode },
      75      { Bad_Opcode },
      76      /* 40 */
      77      { Bad_Opcode },
      78      { Bad_Opcode },
      79      { Bad_Opcode },
      80      { Bad_Opcode },
      81      { Bad_Opcode },
      82      { Bad_Opcode },
      83      { Bad_Opcode },
      84      { Bad_Opcode },
      85      /* 48 */
      86      { Bad_Opcode },
      87      { Bad_Opcode },
      88      { Bad_Opcode },
      89      { Bad_Opcode },
      90      { Bad_Opcode },
      91      { Bad_Opcode },
      92      { Bad_Opcode },
      93      { Bad_Opcode },
      94      /* 50 */
      95      { Bad_Opcode },
      96      { PREFIX_TABLE (PREFIX_VEX_0F51) },
      97      { Bad_Opcode },
      98      { Bad_Opcode },
      99      { "%XEvandpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     100      { "%XEvandnpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     101      { "%XEvorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     102      { "%XEvxorpX",	{ XM, Vex, EXx }, PREFIX_OPCODE },
     103      /* 58 */
     104      { PREFIX_TABLE (PREFIX_VEX_0F58) },
     105      { PREFIX_TABLE (PREFIX_VEX_0F59) },
     106      { PREFIX_TABLE (PREFIX_VEX_0F5A) },
     107      { PREFIX_TABLE (PREFIX_EVEX_0F5B) },
     108      { PREFIX_TABLE (PREFIX_VEX_0F5C) },
     109      { PREFIX_TABLE (PREFIX_VEX_0F5D) },
     110      { PREFIX_TABLE (PREFIX_VEX_0F5E) },
     111      { PREFIX_TABLE (PREFIX_VEX_0F5F) },
     112      /* 60 */
     113      { "%XEvpunpcklbw",	{ XM, Vex, EXx }, PREFIX_DATA },
     114      { "%XEvpunpcklwd",	{ XM, Vex, EXx }, PREFIX_DATA },
     115      { VEX_W_TABLE (EVEX_W_0F62) },
     116      { "%XEvpacksswb",	{ XM, Vex, EXx }, PREFIX_DATA },
     117      { "vpcmpgtb",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     118      { "vpcmpgtw",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     119      { VEX_W_TABLE (EVEX_W_0F66) },
     120      { "%XEvpackuswb",	{ XM, Vex, EXx }, PREFIX_DATA },
     121      /* 68 */
     122      { "%XEvpunpckhbw",	{ XM, Vex, EXx }, PREFIX_DATA },
     123      { "%XEvpunpckhwd",	{ XM, Vex, EXx }, PREFIX_DATA },
     124      { VEX_W_TABLE (EVEX_W_0F6A) },
     125      { VEX_W_TABLE (EVEX_W_0F6B) },
     126      { VEX_W_TABLE (EVEX_W_0F6C) },
     127      { VEX_W_TABLE (EVEX_W_0F6D) },
     128      { VEX_LEN_TABLE (VEX_LEN_0F6E) },
     129      { PREFIX_TABLE (PREFIX_EVEX_0F6F) },
     130      /* 70 */
     131      { PREFIX_TABLE (PREFIX_EVEX_0F70) },
     132      { REG_TABLE (REG_EVEX_0F71) },
     133      { REG_TABLE (REG_EVEX_0F72) },
     134      { REG_TABLE (REG_EVEX_0F73) },
     135      { "vpcmpeqb",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     136      { "vpcmpeqw",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     137      { VEX_W_TABLE (EVEX_W_0F76) },
     138      { Bad_Opcode },
     139      /* 78 */
     140      { PREFIX_TABLE (PREFIX_EVEX_0F78) },
     141      { PREFIX_TABLE (PREFIX_EVEX_0F79) },
     142      { PREFIX_TABLE (PREFIX_EVEX_0F7A) },
     143      { PREFIX_TABLE (PREFIX_EVEX_0F7B) },
     144      { Bad_Opcode },
     145      { Bad_Opcode },
     146      { PREFIX_TABLE (PREFIX_EVEX_0F7E) },
     147      { PREFIX_TABLE (PREFIX_EVEX_0F7F) },
     148      /* 80 */
     149      { Bad_Opcode },
     150      { Bad_Opcode },
     151      { Bad_Opcode },
     152      { Bad_Opcode },
     153      { Bad_Opcode },
     154      { Bad_Opcode },
     155      { Bad_Opcode },
     156      { Bad_Opcode },
     157      /* 88 */
     158      { Bad_Opcode },
     159      { Bad_Opcode },
     160      { Bad_Opcode },
     161      { Bad_Opcode },
     162      { Bad_Opcode },
     163      { Bad_Opcode },
     164      { Bad_Opcode },
     165      { Bad_Opcode },
     166      /* 90 */
     167      { Bad_Opcode },
     168      { Bad_Opcode },
     169      { Bad_Opcode },
     170      { Bad_Opcode },
     171      { Bad_Opcode },
     172      { Bad_Opcode },
     173      { Bad_Opcode },
     174      { Bad_Opcode },
     175      /* 98 */
     176      { Bad_Opcode },
     177      { Bad_Opcode },
     178      { Bad_Opcode },
     179      { Bad_Opcode },
     180      { Bad_Opcode },
     181      { Bad_Opcode },
     182      { Bad_Opcode },
     183      { Bad_Opcode },
     184      /* A0 */
     185      { Bad_Opcode },
     186      { Bad_Opcode },
     187      { Bad_Opcode },
     188      { Bad_Opcode },
     189      { Bad_Opcode },
     190      { Bad_Opcode },
     191      { Bad_Opcode },
     192      { Bad_Opcode },
     193      /* A8 */
     194      { Bad_Opcode },
     195      { Bad_Opcode },
     196      { Bad_Opcode },
     197      { Bad_Opcode },
     198      { Bad_Opcode },
     199      { Bad_Opcode },
     200      { Bad_Opcode },
     201      { Bad_Opcode },
     202      /* B0 */
     203      { Bad_Opcode },
     204      { Bad_Opcode },
     205      { Bad_Opcode },
     206      { Bad_Opcode },
     207      { Bad_Opcode },
     208      { Bad_Opcode },
     209      { Bad_Opcode },
     210      { Bad_Opcode },
     211      /* B8 */
     212      { Bad_Opcode },
     213      { Bad_Opcode },
     214      { Bad_Opcode },
     215      { Bad_Opcode },
     216      { Bad_Opcode },
     217      { Bad_Opcode },
     218      { Bad_Opcode },
     219      { Bad_Opcode },
     220      /* C0 */
     221      { Bad_Opcode },
     222      { Bad_Opcode },
     223      { PREFIX_TABLE (PREFIX_EVEX_0FC2) },
     224      { Bad_Opcode },
     225      { VEX_LEN_TABLE (VEX_LEN_0FC4) },
     226      { VEX_LEN_TABLE (VEX_LEN_0FC5) },
     227      { "%XEvshufpX",	{ XM, Vex, EXx, Ib }, PREFIX_OPCODE },
     228      { Bad_Opcode },
     229      /* C8 */
     230      { Bad_Opcode },
     231      { Bad_Opcode },
     232      { Bad_Opcode },
     233      { Bad_Opcode },
     234      { Bad_Opcode },
     235      { Bad_Opcode },
     236      { Bad_Opcode },
     237      { Bad_Opcode },
     238      /* D0 */
     239      { Bad_Opcode },
     240      { "%XEvpsrlw",	{ XM, Vex, EXxmm }, PREFIX_DATA },
     241      { VEX_W_TABLE (EVEX_W_0FD2) },
     242      { VEX_W_TABLE (EVEX_W_0FD3) },
     243      { VEX_W_TABLE (EVEX_W_0FD4) },
     244      { "%XEvpmullw",	{ XM, Vex, EXx }, PREFIX_DATA },
     245      { VEX_W_TABLE (EVEX_W_0FD6) },
     246      { Bad_Opcode },
     247      /* D8 */
     248      { "%XEvpsubusb",	{ XM, Vex, EXx }, PREFIX_DATA },
     249      { "%XEvpsubusw",	{ XM, Vex, EXx }, PREFIX_DATA },
     250      { "%XEvpminub",	{ XM, Vex, EXx }, PREFIX_DATA },
     251      { "vpand%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     252      { "%XEvpaddusb",	{ XM, Vex, EXx }, PREFIX_DATA },
     253      { "%XEvpaddusw",	{ XM, Vex, EXx }, PREFIX_DATA },
     254      { "%XEvpmaxub",	{ XM, Vex, EXx }, PREFIX_DATA },
     255      { "vpandn%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     256      /* E0 */
     257      { "%XEvpavgb",	{ XM, Vex, EXx }, PREFIX_DATA },
     258      { "%XEvpsraw",	{ XM, Vex, EXxmm }, PREFIX_DATA },
     259      { "%XEvpsra%DQ",	{ XM, Vex, EXxmm }, PREFIX_DATA },
     260      { "%XEvpavgw",	{ XM, Vex, EXx }, PREFIX_DATA },
     261      { "%XEvpmulhuw",	{ XM, Vex, EXx }, PREFIX_DATA },
     262      { "%XEvpmulhw",	{ XM, Vex, EXx }, PREFIX_DATA },
     263      { PREFIX_TABLE (PREFIX_EVEX_0FE6) },
     264      { VEX_W_TABLE (EVEX_W_0FE7) },
     265      /* E8 */
     266      { "%XEvpsubsb",	{ XM, Vex, EXx }, PREFIX_DATA },
     267      { "%XEvpsubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     268      { "%XEvpminsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     269      { "vpor%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     270      { "%XEvpaddsb",	{ XM, Vex, EXx }, PREFIX_DATA },
     271      { "%XEvpaddsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     272      { "%XEvpmaxsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     273      { "vpxor%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     274      /* F0 */
     275      { Bad_Opcode },
     276      { "%XEvpsllw",	{ XM, Vex, EXxmm }, PREFIX_DATA },
     277      { VEX_W_TABLE (EVEX_W_0FF2) },
     278      { VEX_W_TABLE (EVEX_W_0FF3) },
     279      { VEX_W_TABLE (EVEX_W_0FF4) },
     280      { "%XEvpmaddwd",	{ XM, Vex, EXx }, PREFIX_DATA },
     281      { "%XEvpsadbw",	{ XM, Vex, EXx }, PREFIX_DATA },
     282      { Bad_Opcode },
     283      /* F8 */
     284      { "%XEvpsubb",	{ XM, Vex, EXx }, PREFIX_DATA },
     285      { "%XEvpsubw",	{ XM, Vex, EXx }, PREFIX_DATA },
     286      { VEX_W_TABLE (EVEX_W_0FFA) },
     287      { VEX_W_TABLE (EVEX_W_0FFB) },
     288      { "%XEvpaddb",	{ XM, Vex, EXx }, PREFIX_DATA },
     289      { "%XEvpaddw",	{ XM, Vex, EXx }, PREFIX_DATA },
     290      { VEX_W_TABLE (EVEX_W_0FFE) },
     291      { Bad_Opcode },
     292    },
     293    /* EVEX_0F38 */
     294    {
     295      /* 00 */
     296      { "%XEvpshufb",	{ XM, Vex, EXx }, PREFIX_DATA },
     297      { Bad_Opcode },
     298      { Bad_Opcode },
     299      { Bad_Opcode },
     300      { "%XEvpmaddubsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     301      { Bad_Opcode },
     302      { Bad_Opcode },
     303      { Bad_Opcode },
     304      /* 08 */
     305      { Bad_Opcode },
     306      { Bad_Opcode },
     307      { Bad_Opcode },
     308      { "%XEvpmulhrsw",	{ XM, Vex, EXx }, PREFIX_DATA },
     309      { VEX_W_TABLE (VEX_W_0F380C) },
     310      { "%XEvpermilp%XD", { XM, Vex, EXx }, PREFIX_DATA },
     311      { Bad_Opcode },
     312      { Bad_Opcode },
     313      /* 10 */
     314      { PREFIX_TABLE (PREFIX_EVEX_0F3810) },
     315      { PREFIX_TABLE (PREFIX_EVEX_0F3811) },
     316      { PREFIX_TABLE (PREFIX_EVEX_0F3812) },
     317      { PREFIX_TABLE (PREFIX_EVEX_0F3813) },
     318      { PREFIX_TABLE (PREFIX_EVEX_0F3814) },
     319      { PREFIX_TABLE (PREFIX_EVEX_0F3815) },
     320      { EVEX_LEN_TABLE (EVEX_LEN_0F3816) },
     321      { Bad_Opcode },
     322      /* 18 */
     323      { VEX_W_TABLE (VEX_W_0F3818) },
     324      { EVEX_LEN_TABLE (EVEX_LEN_0F3819) },
     325      { MOD_TABLE (MOD_EVEX_0F381A) },
     326      { MOD_TABLE (MOD_EVEX_0F381B) },
     327      { "%XEvpabsb",		{ XM, EXx }, PREFIX_DATA },
     328      { "%XEvpabsw",		{ XM, EXx }, PREFIX_DATA },
     329      { VEX_W_TABLE (EVEX_W_0F381E) },
     330      { VEX_W_TABLE (EVEX_W_0F381F) },
     331      /* 20 */
     332      { PREFIX_TABLE (PREFIX_EVEX_0F3820) },
     333      { PREFIX_TABLE (PREFIX_EVEX_0F3821) },
     334      { PREFIX_TABLE (PREFIX_EVEX_0F3822) },
     335      { PREFIX_TABLE (PREFIX_EVEX_0F3823) },
     336      { PREFIX_TABLE (PREFIX_EVEX_0F3824) },
     337      { PREFIX_TABLE (PREFIX_EVEX_0F3825) },
     338      { PREFIX_TABLE (PREFIX_EVEX_0F3826) },
     339      { PREFIX_TABLE (PREFIX_EVEX_0F3827) },
     340      /* 28 */
     341      { PREFIX_TABLE (PREFIX_EVEX_0F3828) },
     342      { PREFIX_TABLE (PREFIX_EVEX_0F3829) },
     343      { PREFIX_TABLE (PREFIX_EVEX_0F382A) },
     344      { VEX_W_TABLE (EVEX_W_0F382B) },
     345      { "vscalefp%XW",	{ XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     346      { "vscalefs%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     347      { Bad_Opcode },
     348      { Bad_Opcode },
     349      /* 30 */
     350      { PREFIX_TABLE (PREFIX_EVEX_0F3830) },
     351      { PREFIX_TABLE (PREFIX_EVEX_0F3831) },
     352      { PREFIX_TABLE (PREFIX_EVEX_0F3832) },
     353      { PREFIX_TABLE (PREFIX_EVEX_0F3833) },
     354      { PREFIX_TABLE (PREFIX_EVEX_0F3834) },
     355      { PREFIX_TABLE (PREFIX_EVEX_0F3835) },
     356      { EVEX_LEN_TABLE (EVEX_LEN_0F3836) },
     357      { VEX_W_TABLE (EVEX_W_0F3837) },
     358      /* 38 */
     359      { PREFIX_TABLE (PREFIX_EVEX_0F3838) },
     360      { PREFIX_TABLE (PREFIX_EVEX_0F3839) },
     361      { PREFIX_TABLE (PREFIX_EVEX_0F383A) },
     362      { "%XEvpminu%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     363      { "%XEvpmaxsb",	{ XM, Vex, EXx }, PREFIX_DATA },
     364      { "%XEvpmaxs%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     365      { "%XEvpmaxuw",	{ XM, Vex, EXx }, PREFIX_DATA },
     366      { "%XEvpmaxu%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     367      /* 40 */
     368      { "%XEvpmull%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     369      { Bad_Opcode },
     370      { "vgetexpp%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
     371      { "vgetexps%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
     372      { "vplzcnt%DQ",	{ XM, EXx }, PREFIX_DATA },
     373      { "vpsrlv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     374      { "vpsrav%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     375      { "vpsllv%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     376      /* 48 */
     377      { Bad_Opcode },
     378      { Bad_Opcode },
     379      { Bad_Opcode },
     380      { Bad_Opcode },
     381      { "vrcp14p%XW",	{ XM, EXx }, PREFIX_DATA },
     382      { "vrcp14s%XW",	{ XMScalar, VexScalar, EXdq }, PREFIX_DATA },
     383      { "vrsqrt14p%XW",	{ XM, EXx }, 0 },
     384      { "vrsqrt14s%XW",	{ XMScalar, VexScalar, EXdq }, PREFIX_DATA },
     385      /* 50 */
     386      { VEX_W_TABLE (VEX_W_0F3850) },
     387      { VEX_W_TABLE (VEX_W_0F3851) },
     388      { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
     389      { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
     390      { "vpopcnt%BW",	{ XM, EXx }, PREFIX_DATA },
     391      { "vpopcnt%DQ",	{ XM, EXx }, PREFIX_DATA },
     392      { Bad_Opcode },
     393      { Bad_Opcode },
     394      /* 58 */
     395      { VEX_W_TABLE (VEX_W_0F3858) },
     396      { VEX_W_TABLE (EVEX_W_0F3859) },
     397      { MOD_TABLE (MOD_EVEX_0F385A) },
     398      { MOD_TABLE (MOD_EVEX_0F385B) },
     399      { Bad_Opcode },
     400      { Bad_Opcode },
     401      { Bad_Opcode },
     402      { Bad_Opcode },
     403      /* 60 */
     404      { Bad_Opcode },
     405      { Bad_Opcode },
     406      { "vpexpand%BW",	{ XM, EXbwUnit }, PREFIX_DATA },
     407      { "vpcompress%BW",	{ EXbwUnit, XM }, PREFIX_DATA },
     408      { "vpblendm%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     409      { "vblendmp%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
     410      { "vpblendm%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
     411      { Bad_Opcode },
     412      /* 68 */
     413      { PREFIX_TABLE (PREFIX_EVEX_0F3868) },
     414      { Bad_Opcode },
     415      { Bad_Opcode },
     416      { Bad_Opcode },
     417      { Bad_Opcode },
     418      { Bad_Opcode },
     419      { Bad_Opcode },
     420      { Bad_Opcode },
     421      /* 70 */
     422      { VEX_W_TABLE (EVEX_W_0F3870) },
     423      { "vpshldv%DQ",  { XM, Vex, EXx }, PREFIX_DATA },
     424      { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
     425      { "vpshrdv%DQ",  { XM, Vex, EXx }, PREFIX_DATA },
     426      { Bad_Opcode },
     427      { "vpermi2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
     428      { "vpermi2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     429      { "vpermi2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
     430      /* 78 */
     431      { VEX_W_TABLE (VEX_W_0F3878) },
     432      { VEX_W_TABLE (VEX_W_0F3879) },
     433      { VEX_W_TABLE (EVEX_W_0F387A) },
     434      { VEX_W_TABLE (EVEX_W_0F387B) },
     435      { MOD_TABLE (MOD_EVEX_0F387C) },
     436      { "vpermt2%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
     437      { "vpermt2%DQ",	{ XM, Vex, EXx }, PREFIX_DATA },
     438      { "vpermt2p%XW",	{ XM, Vex, EXx }, PREFIX_DATA },
     439      /* 80 */
     440      { Bad_Opcode },
     441      { Bad_Opcode },
     442      { Bad_Opcode },
     443      { VEX_W_TABLE (EVEX_W_0F3883) },
     444      { Bad_Opcode },
     445      { Bad_Opcode },
     446      { Bad_Opcode },
     447      { Bad_Opcode },
     448      /* 88 */
     449      { "vexpandp%XW",	{ XM, EXEvexXGscat }, PREFIX_DATA },
     450      { "vpexpand%DQ",	{ XM, EXEvexXGscat }, PREFIX_DATA },
     451      { "vcompressp%XW",	{ EXEvexXGscat, XM }, PREFIX_DATA },
     452      { "vpcompress%DQ",	{ EXEvexXGscat, XM }, PREFIX_DATA },
     453      { Bad_Opcode },
     454      { "vperm%BW",	{ XM, Vex, EXx }, PREFIX_DATA },
     455      { Bad_Opcode },
     456      { "vpshufbitqmb",	{ MaskG, Vex, EXx }, PREFIX_DATA },
     457      /* 90 */
     458      { "vpgatherd%DQ",	{ XMGatherD, MVexVSIBDWpX }, PREFIX_DATA },
     459      { "vpgatherq%DQ",	{ XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA },
     460      { "vgatherdp%XW",	{ XMGatherD, MVexVSIBDWpX }, PREFIX_DATA },
     461      { "vgatherqp%XW",	{ XMGatherQ, MVexVSIBQWpX }, PREFIX_DATA },
     462      { Bad_Opcode },
     463      { Bad_Opcode },
     464      { "%XEvfmaddsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     465      { "%XEvfmsubadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     466      /* 98 */
     467      { "%XEvfmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     468      { "%XEvfmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     469      { PREFIX_TABLE (PREFIX_EVEX_0F389A) },
     470      { PREFIX_TABLE (PREFIX_EVEX_0F389B) },
     471      { "%XEvfnmadd132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     472      { "%XEvfnmadd132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     473      { "%XEvfnmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     474      { "%XEvfnmsub132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     475      /* A0 */
     476      { "vpscatterd%DQ",	{ MVexVSIBDWpX, XM }, PREFIX_DATA },
     477      { "vpscatterq%DQ",	{ MVexVSIBQWpX, XMGatherQ }, PREFIX_DATA },
     478      { "vscatterdp%XW",	{ MVexVSIBDWpX, XM }, PREFIX_DATA },
     479      { "vscatterqp%XW",	{ MVexVSIBQWpX, XMGatherQ }, PREFIX_DATA },
     480      { Bad_Opcode },
     481      { Bad_Opcode },
     482      { "%XEvfmaddsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     483      { "%XEvfmsubadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     484      /* A8 */
     485      { "%XEvfmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     486      { "%XEvfmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     487      { PREFIX_TABLE (PREFIX_EVEX_0F38AA) },
     488      { PREFIX_TABLE (PREFIX_EVEX_0F38AB) },
     489      { "%XEvfnmadd213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     490      { "%XEvfnmadd213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     491      { "%XEvfnmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     492      { "%XEvfnmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     493      /* B0 */
     494      { Bad_Opcode },
     495      { Bad_Opcode },
     496      { Bad_Opcode },
     497      { Bad_Opcode },
     498      { VEX_W_TABLE (VEX_W_0F38B4) },
     499      { VEX_W_TABLE (VEX_W_0F38B5) },
     500      { "%XEvfmaddsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     501      { "%XEvfmsubadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     502      /* B8 */
     503      { "%XEvfmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     504      { "%XEvfmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     505      { "%XEvfmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     506      { "%XEvfmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     507      { "%XEvfnmadd231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     508      { "%XEvfnmadd231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     509      { "%XEvfnmsub231p%XW", { XM, Vex, EXx, EXxEVexR }, PREFIX_DATA },
     510      { "%XEvfnmsub231s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, PREFIX_DATA },
     511      /* C0 */
     512      { Bad_Opcode },
     513      { Bad_Opcode },
     514      { Bad_Opcode },
     515      { Bad_Opcode },
     516      { "vpconflict%DQ",	{ XM, EXx }, PREFIX_DATA },
     517      { Bad_Opcode },
     518      { MOD_TABLE (MOD_EVEX_0F38C6) },
     519      { MOD_TABLE (MOD_EVEX_0F38C7) },
     520      /* C8 */
     521      { "vexp2p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
     522      { Bad_Opcode },
     523      { "vrcp28p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
     524      { "vrcp28s%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
     525      { "vrsqrt28p%XW",	{ XM, EXx, EXxEVexS }, PREFIX_DATA },
     526      { "vrsqrt28s%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS }, PREFIX_DATA },
     527      { Bad_Opcode },
     528      { VEX_W_TABLE (VEX_W_0F38CF) },
     529      /* D0 */
     530      { Bad_Opcode },
     531      { Bad_Opcode },
     532      { Bad_Opcode },
     533      { Bad_Opcode },
     534      { Bad_Opcode },
     535      { Bad_Opcode },
     536      { Bad_Opcode },
     537      { Bad_Opcode },
     538      /* D8 */
     539      { Bad_Opcode },
     540      { Bad_Opcode },
     541      { Bad_Opcode },
     542      { Bad_Opcode },
     543      { "%XEvaesenc",	{ XM, Vex, EXx }, PREFIX_DATA },
     544      { "%XEvaesenclast",	{ XM, Vex, EXx }, PREFIX_DATA },
     545      { "%XEvaesdec",	{ XM, Vex, EXx }, PREFIX_DATA },
     546      { "%XEvaesdeclast",	{ XM, Vex, EXx }, PREFIX_DATA },
     547      /* E0 */
     548      { Bad_Opcode },
     549      { Bad_Opcode },
     550      { Bad_Opcode },
     551      { Bad_Opcode },
     552      { Bad_Opcode },
     553      { Bad_Opcode },
     554      { Bad_Opcode },
     555      { Bad_Opcode },
     556      /* E8 */
     557      { Bad_Opcode },
     558      { Bad_Opcode },
     559      { Bad_Opcode },
     560      { Bad_Opcode },
     561      { Bad_Opcode },
     562      { Bad_Opcode },
     563      { Bad_Opcode },
     564      { Bad_Opcode },
     565      /* F0 */
     566      { Bad_Opcode },
     567      { Bad_Opcode },
     568      { Bad_Opcode },
     569      { Bad_Opcode },
     570      { Bad_Opcode },
     571      { Bad_Opcode },
     572      { Bad_Opcode },
     573      { Bad_Opcode },
     574      /* F8 */
     575      { Bad_Opcode },
     576      { Bad_Opcode },
     577      { Bad_Opcode },
     578      { Bad_Opcode },
     579      { Bad_Opcode },
     580      { Bad_Opcode },
     581      { Bad_Opcode },
     582      { Bad_Opcode },
     583    },
     584    /* EVEX_0F3A */
     585    {
     586      /* 00 */
     587      { EVEX_LEN_TABLE (EVEX_LEN_0F3A00) },
     588      { EVEX_LEN_TABLE (EVEX_LEN_0F3A01) },
     589      { Bad_Opcode },
     590      { "valign%DQ",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
     591      { VEX_W_TABLE (VEX_W_0F3A04) },
     592      { "%XEvpermilp%XD", { XM, EXx, Ib }, PREFIX_DATA },
     593      { Bad_Opcode },
     594      { Bad_Opcode },
     595      /* 08 */
     596      { PREFIX_TABLE (PREFIX_EVEX_0F3A08) },
     597      { "vrndscalep%XD", { XM, EXx, EXxEVexS, Ib }, PREFIX_DATA },
     598      { PREFIX_TABLE (PREFIX_EVEX_0F3A0A) },
     599      { "vrndscales%XD", { XMScalar, VexScalar, EXq, EXxEVexS, Ib }, PREFIX_DATA },
     600      { Bad_Opcode },
     601      { Bad_Opcode },
     602      { Bad_Opcode },
     603      { "%XEvpalignr",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
     604      /* 10 */
     605      { Bad_Opcode },
     606      { Bad_Opcode },
     607      { Bad_Opcode },
     608      { Bad_Opcode },
     609      { VEX_LEN_TABLE (VEX_LEN_0F3A14) },
     610      { VEX_LEN_TABLE (VEX_LEN_0F3A15) },
     611      { VEX_LEN_TABLE (VEX_LEN_0F3A16) },
     612      { VEX_LEN_TABLE (VEX_LEN_0F3A17) },
     613      /* 18 */
     614      { EVEX_LEN_TABLE (EVEX_LEN_0F3A18) },
     615      { EVEX_LEN_TABLE (EVEX_LEN_0F3A19) },
     616      { EVEX_LEN_TABLE (EVEX_LEN_0F3A1A) },
     617      { EVEX_LEN_TABLE (EVEX_LEN_0F3A1B) },
     618      { Bad_Opcode },
     619      { VEX_W_TABLE (VEX_W_0F3A1D) },
     620      { "vpcmpu%DQ",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
     621      { "vpcmp%DQ",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
     622      /* 20 */
     623      { VEX_LEN_TABLE (VEX_LEN_0F3A20) },
     624      { VEX_W_TABLE (EVEX_W_0F3A21) },
     625      { VEX_LEN_TABLE (VEX_LEN_0F3A22) },
     626      { EVEX_LEN_TABLE (EVEX_LEN_0F3A23) },
     627      { Bad_Opcode },
     628      { "vpternlog%DQ",	{ XM, Vex, EXx, Ib }, PREFIX_DATA },
     629      { PREFIX_TABLE (PREFIX_EVEX_0F3A26) },
     630      { PREFIX_TABLE (PREFIX_EVEX_0F3A27) },
     631      /* 28 */
     632      { Bad_Opcode },
     633      { Bad_Opcode },
     634      { Bad_Opcode },
     635      { Bad_Opcode },
     636      { Bad_Opcode },
     637      { Bad_Opcode },
     638      { Bad_Opcode },
     639      { Bad_Opcode },
     640      /* 30 */
     641      { Bad_Opcode },
     642      { Bad_Opcode },
     643      { Bad_Opcode },
     644      { Bad_Opcode },
     645      { Bad_Opcode },
     646      { Bad_Opcode },
     647      { Bad_Opcode },
     648      { Bad_Opcode },
     649      /* 38 */
     650      { EVEX_LEN_TABLE (EVEX_LEN_0F3A38) },
     651      { EVEX_LEN_TABLE (EVEX_LEN_0F3A39) },
     652      { EVEX_LEN_TABLE (EVEX_LEN_0F3A3A) },
     653      { EVEX_LEN_TABLE (EVEX_LEN_0F3A3B) },
     654      { Bad_Opcode },
     655      { Bad_Opcode },
     656      { "vpcmpu%BW",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
     657      { "vpcmp%BW",	{ MaskG, Vex, EXx, VPCMP }, PREFIX_DATA },
     658      /* 40 */
     659      { Bad_Opcode },
     660      { Bad_Opcode },
     661      { VEX_W_TABLE (EVEX_W_0F3A42) },
     662      { EVEX_LEN_TABLE (EVEX_LEN_0F3A43) },
     663      { "%XEvpclmulqdq",	{ XM, Vex, EXx, PCLMUL }, PREFIX_DATA },
     664      { Bad_Opcode },
     665      { Bad_Opcode },
     666      { Bad_Opcode },
     667      /* 48 */
     668      { Bad_Opcode },
     669      { Bad_Opcode },
     670      { Bad_Opcode },
     671      { Bad_Opcode },
     672      { Bad_Opcode },
     673      { Bad_Opcode },
     674      { Bad_Opcode },
     675      { Bad_Opcode },
     676      /* 50 */
     677      { "vrangep%XW",	{ XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
     678      { "vranges%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, PREFIX_DATA },
     679      { Bad_Opcode },
     680      { Bad_Opcode },
     681      { "vfixupimmp%XW",	{ XM, Vex, EXx, EXxEVexS, Ib }, PREFIX_DATA },
     682      { "vfixupimms%XW",	{ XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, PREFIX_DATA },
     683      { PREFIX_TABLE (PREFIX_EVEX_0F3A56) },
     684      { PREFIX_TABLE (PREFIX_EVEX_0F3A57) },
     685      /* 58 */
     686      { Bad_Opcode },
     687      { Bad_Opcode },
     688      { Bad_Opcode },
     689      { Bad_Opcode },
     690      { Bad_Opcode },
     691      { Bad_Opcode },
     692      { Bad_Opcode },
     693      { Bad_Opcode },
     694      /* 60 */
     695      { Bad_Opcode },
     696      { Bad_Opcode },
     697      { Bad_Opcode },
     698      { Bad_Opcode },
     699      { Bad_Opcode },
     700      { Bad_Opcode },
     701      { PREFIX_TABLE (PREFIX_EVEX_0F3A66) },
     702      { PREFIX_TABLE (PREFIX_EVEX_0F3A67) },
     703      /* 68 */
     704      { Bad_Opcode },
     705      { Bad_Opcode },
     706      { Bad_Opcode },
     707      { Bad_Opcode },
     708      { Bad_Opcode },
     709      { Bad_Opcode },
     710      { Bad_Opcode },
     711      { Bad_Opcode },
     712      /* 70 */
     713      { VEX_W_TABLE (EVEX_W_0F3A70) },
     714      { "vpshld%DQ",   { XM, Vex, EXx, Ib }, PREFIX_DATA },
     715      { VEX_W_TABLE (EVEX_W_0F3A72) },
     716      { "vpshrd%DQ",   { XM, Vex, EXx, Ib }, PREFIX_DATA },
     717      { Bad_Opcode },
     718      { Bad_Opcode },
     719      { Bad_Opcode },
     720      { Bad_Opcode },
     721      /* 78 */
     722      { Bad_Opcode },
     723      { Bad_Opcode },
     724      { Bad_Opcode },
     725      { Bad_Opcode },
     726      { Bad_Opcode },
     727      { Bad_Opcode },
     728      { Bad_Opcode },
     729      { Bad_Opcode },
     730      /* 80 */
     731      { Bad_Opcode },
     732      { Bad_Opcode },
     733      { Bad_Opcode },
     734      { Bad_Opcode },
     735      { Bad_Opcode },
     736      { Bad_Opcode },
     737      { Bad_Opcode },
     738      { Bad_Opcode },
     739      /* 88 */
     740      { Bad_Opcode },
     741      { Bad_Opcode },
     742      { Bad_Opcode },
     743      { Bad_Opcode },
     744      { Bad_Opcode },
     745      { Bad_Opcode },
     746      { Bad_Opcode },
     747      { Bad_Opcode },
     748      /* 90 */
     749      { Bad_Opcode },
     750      { Bad_Opcode },
     751      { Bad_Opcode },
     752      { Bad_Opcode },
     753      { Bad_Opcode },
     754      { Bad_Opcode },
     755      { Bad_Opcode },
     756      { Bad_Opcode },
     757      /* 98 */
     758      { Bad_Opcode },
     759      { Bad_Opcode },
     760      { Bad_Opcode },
     761      { Bad_Opcode },
     762      { Bad_Opcode },
     763      { Bad_Opcode },
     764      { Bad_Opcode },
     765      { Bad_Opcode },
     766      /* A0 */
     767      { Bad_Opcode },
     768      { Bad_Opcode },
     769      { Bad_Opcode },
     770      { Bad_Opcode },
     771      { Bad_Opcode },
     772      { Bad_Opcode },
     773      { Bad_Opcode },
     774      { Bad_Opcode },
     775      /* A8 */
     776      { Bad_Opcode },
     777      { Bad_Opcode },
     778      { Bad_Opcode },
     779      { Bad_Opcode },
     780      { Bad_Opcode },
     781      { Bad_Opcode },
     782      { Bad_Opcode },
     783      { Bad_Opcode },
     784      /* B0 */
     785      { Bad_Opcode },
     786      { Bad_Opcode },
     787      { Bad_Opcode },
     788      { Bad_Opcode },
     789      { Bad_Opcode },
     790      { Bad_Opcode },
     791      { Bad_Opcode },
     792      { Bad_Opcode },
     793      /* B8 */
     794      { Bad_Opcode },
     795      { Bad_Opcode },
     796      { Bad_Opcode },
     797      { Bad_Opcode },
     798      { Bad_Opcode },
     799      { Bad_Opcode },
     800      { Bad_Opcode },
     801      { Bad_Opcode },
     802      /* C0 */
     803      { Bad_Opcode },
     804      { Bad_Opcode },
     805      { PREFIX_TABLE (PREFIX_EVEX_0F3AC2) },
     806      { Bad_Opcode },
     807      { Bad_Opcode },
     808      { Bad_Opcode },
     809      { Bad_Opcode },
     810      { Bad_Opcode },
     811      /* C8 */
     812      { Bad_Opcode },
     813      { Bad_Opcode },
     814      { Bad_Opcode },
     815      { Bad_Opcode },
     816      { Bad_Opcode },
     817      { Bad_Opcode },
     818      { VEX_W_TABLE (VEX_W_0F3ACE) },
     819      { VEX_W_TABLE (VEX_W_0F3ACF) },
     820      /* D0 */
     821      { Bad_Opcode },
     822      { Bad_Opcode },
     823      { Bad_Opcode },
     824      { Bad_Opcode },
     825      { Bad_Opcode },
     826      { Bad_Opcode },
     827      { Bad_Opcode },
     828      { Bad_Opcode },
     829      /* D8 */
     830      { Bad_Opcode },
     831      { Bad_Opcode },
     832      { Bad_Opcode },
     833      { Bad_Opcode },
     834      { Bad_Opcode },
     835      { Bad_Opcode },
     836      { Bad_Opcode },
     837      { Bad_Opcode },
     838      /* E0 */
     839      { Bad_Opcode },
     840      { Bad_Opcode },
     841      { Bad_Opcode },
     842      { Bad_Opcode },
     843      { Bad_Opcode },
     844      { Bad_Opcode },
     845      { Bad_Opcode },
     846      { Bad_Opcode },
     847      /* E8 */
     848      { Bad_Opcode },
     849      { Bad_Opcode },
     850      { Bad_Opcode },
     851      { Bad_Opcode },
     852      { Bad_Opcode },
     853      { Bad_Opcode },
     854      { Bad_Opcode },
     855      { Bad_Opcode },
     856      /* F0 */
     857      { Bad_Opcode },
     858      { Bad_Opcode },
     859      { Bad_Opcode },
     860      { Bad_Opcode },
     861      { Bad_Opcode },
     862      { Bad_Opcode },
     863      { Bad_Opcode },
     864      { Bad_Opcode },
     865      /* F8 */
     866      { Bad_Opcode },
     867      { Bad_Opcode },
     868      { Bad_Opcode },
     869      { Bad_Opcode },
     870      { Bad_Opcode },
     871      { Bad_Opcode },
     872      { Bad_Opcode },
     873      { Bad_Opcode },
     874    },
     875    /* EVEX_MAP5_ */
     876    {
     877      /* 00 */
     878      { Bad_Opcode },
     879      { Bad_Opcode },
     880      { Bad_Opcode },
     881      { Bad_Opcode },
     882      { Bad_Opcode },
     883      { Bad_Opcode },
     884      { Bad_Opcode },
     885      { Bad_Opcode },
     886      /* 08 */
     887      { Bad_Opcode },
     888      { Bad_Opcode },
     889      { Bad_Opcode },
     890      { Bad_Opcode },
     891      { Bad_Opcode },
     892      { Bad_Opcode },
     893      { Bad_Opcode },
     894      { Bad_Opcode },
     895      /* 10 */
     896      { PREFIX_TABLE (PREFIX_EVEX_MAP5_10) },
     897      { PREFIX_TABLE (PREFIX_EVEX_MAP5_11) },
     898      { Bad_Opcode },
     899      { Bad_Opcode },
     900      { Bad_Opcode },
     901      { Bad_Opcode },
     902      { Bad_Opcode },
     903      { Bad_Opcode },
     904      /* 18 */
     905      { Bad_Opcode },
     906      { Bad_Opcode },
     907      { Bad_Opcode },
     908      { Bad_Opcode },
     909      { Bad_Opcode },
     910      { PREFIX_TABLE (PREFIX_EVEX_MAP5_1D) },
     911      { Bad_Opcode },
     912      { Bad_Opcode },
     913      /* 20 */
     914      { Bad_Opcode },
     915      { Bad_Opcode },
     916      { Bad_Opcode },
     917      { Bad_Opcode },
     918      { Bad_Opcode },
     919      { Bad_Opcode },
     920      { Bad_Opcode },
     921      { Bad_Opcode },
     922      /* 28 */
     923      { Bad_Opcode },
     924      { Bad_Opcode },
     925      { PREFIX_TABLE (PREFIX_EVEX_MAP5_2A) },
     926      { Bad_Opcode },
     927      { PREFIX_TABLE (PREFIX_EVEX_MAP5_2C) },
     928      { PREFIX_TABLE (PREFIX_EVEX_MAP5_2D) },
     929      { PREFIX_TABLE (PREFIX_EVEX_MAP5_2E) },
     930      { PREFIX_TABLE (PREFIX_EVEX_MAP5_2F) },
     931      /* 30 */
     932      { Bad_Opcode },
     933      { Bad_Opcode },
     934      { Bad_Opcode },
     935      { Bad_Opcode },
     936      { Bad_Opcode },
     937      { Bad_Opcode },
     938      { Bad_Opcode },
     939      { Bad_Opcode },
     940      /* 38 */
     941      { Bad_Opcode },
     942      { Bad_Opcode },
     943      { Bad_Opcode },
     944      { Bad_Opcode },
     945      { Bad_Opcode },
     946      { Bad_Opcode },
     947      { Bad_Opcode },
     948      { Bad_Opcode },
     949      /* 40 */
     950      { Bad_Opcode },
     951      { Bad_Opcode },
     952      { Bad_Opcode },
     953      { Bad_Opcode },
     954      { Bad_Opcode },
     955      { Bad_Opcode },
     956      { Bad_Opcode },
     957      { Bad_Opcode },
     958      /* 48 */
     959      { Bad_Opcode },
     960      { Bad_Opcode },
     961      { Bad_Opcode },
     962      { Bad_Opcode },
     963      { Bad_Opcode },
     964      { Bad_Opcode },
     965      { Bad_Opcode },
     966      { Bad_Opcode },
     967      /* 50 */
     968      { Bad_Opcode },
     969      { PREFIX_TABLE (PREFIX_EVEX_MAP5_51) },
     970      { Bad_Opcode },
     971      { Bad_Opcode },
     972      { Bad_Opcode },
     973      { Bad_Opcode },
     974      { Bad_Opcode },
     975      { Bad_Opcode },
     976      /* 58 */
     977      { PREFIX_TABLE (PREFIX_EVEX_MAP5_58) },
     978      { PREFIX_TABLE (PREFIX_EVEX_MAP5_59) },
     979      { PREFIX_TABLE (PREFIX_EVEX_MAP5_5A) },
     980      { PREFIX_TABLE (PREFIX_EVEX_MAP5_5B) },
     981      { PREFIX_TABLE (PREFIX_EVEX_MAP5_5C) },
     982      { PREFIX_TABLE (PREFIX_EVEX_MAP5_5D) },
     983      { PREFIX_TABLE (PREFIX_EVEX_MAP5_5E) },
     984      { PREFIX_TABLE (PREFIX_EVEX_MAP5_5F) },
     985      /* 60 */
     986      { Bad_Opcode },
     987      { Bad_Opcode },
     988      { Bad_Opcode },
     989      { Bad_Opcode },
     990      { Bad_Opcode },
     991      { Bad_Opcode },
     992      { Bad_Opcode },
     993      { Bad_Opcode },
     994      /* 68 */
     995      { Bad_Opcode },
     996      { Bad_Opcode },
     997      { Bad_Opcode },
     998      { Bad_Opcode },
     999      { Bad_Opcode },
    1000      { Bad_Opcode },
    1001      { "vmovw", { XMScalar, Edw }, PREFIX_DATA },
    1002      { Bad_Opcode },
    1003      /* 70 */
    1004      { Bad_Opcode },
    1005      { Bad_Opcode },
    1006      { Bad_Opcode },
    1007      { Bad_Opcode },
    1008      { Bad_Opcode },
    1009      { Bad_Opcode },
    1010      { Bad_Opcode },
    1011      { Bad_Opcode },
    1012      /* 78 */
    1013      { PREFIX_TABLE (PREFIX_EVEX_MAP5_78) },
    1014      { PREFIX_TABLE (PREFIX_EVEX_MAP5_79) },
    1015      { PREFIX_TABLE (PREFIX_EVEX_MAP5_7A) },
    1016      { PREFIX_TABLE (PREFIX_EVEX_MAP5_7B) },
    1017      { PREFIX_TABLE (PREFIX_EVEX_MAP5_7C) },
    1018      { PREFIX_TABLE (PREFIX_EVEX_MAP5_7D) },
    1019      { "vmovw",	  { Edw, XMScalar }, PREFIX_DATA },
    1020      { Bad_Opcode },
    1021      /* 80 */
    1022      { Bad_Opcode },
    1023      { Bad_Opcode },
    1024      { Bad_Opcode },
    1025      { Bad_Opcode },
    1026      { Bad_Opcode },
    1027      { Bad_Opcode },
    1028      { Bad_Opcode },
    1029      { Bad_Opcode },
    1030      /* 88 */
    1031      { Bad_Opcode },
    1032      { Bad_Opcode },
    1033      { Bad_Opcode },
    1034      { Bad_Opcode },
    1035      { Bad_Opcode },
    1036      { Bad_Opcode },
    1037      { Bad_Opcode },
    1038      { Bad_Opcode },
    1039      /* 90 */
    1040      { Bad_Opcode },
    1041      { Bad_Opcode },
    1042      { Bad_Opcode },
    1043      { Bad_Opcode },
    1044      { Bad_Opcode },
    1045      { Bad_Opcode },
    1046      { Bad_Opcode },
    1047      { Bad_Opcode },
    1048      /* 98 */
    1049      { Bad_Opcode },
    1050      { Bad_Opcode },
    1051      { Bad_Opcode },
    1052      { Bad_Opcode },
    1053      { Bad_Opcode },
    1054      { Bad_Opcode },
    1055      { Bad_Opcode },
    1056      { Bad_Opcode },
    1057      /* A0 */
    1058      { Bad_Opcode },
    1059      { Bad_Opcode },
    1060      { Bad_Opcode },
    1061      { Bad_Opcode },
    1062      { Bad_Opcode },
    1063      { Bad_Opcode },
    1064      { Bad_Opcode },
    1065      { Bad_Opcode },
    1066      /* A8 */
    1067      { Bad_Opcode },
    1068      { Bad_Opcode },
    1069      { Bad_Opcode },
    1070      { Bad_Opcode },
    1071      { Bad_Opcode },
    1072      { Bad_Opcode },
    1073      { Bad_Opcode },
    1074      { Bad_Opcode },
    1075      /* B0 */
    1076      { Bad_Opcode },
    1077      { Bad_Opcode },
    1078      { Bad_Opcode },
    1079      { Bad_Opcode },
    1080      { Bad_Opcode },
    1081      { Bad_Opcode },
    1082      { Bad_Opcode },
    1083      { Bad_Opcode },
    1084      /* B8 */
    1085      { Bad_Opcode },
    1086      { Bad_Opcode },
    1087      { Bad_Opcode },
    1088      { Bad_Opcode },
    1089      { Bad_Opcode },
    1090      { Bad_Opcode },
    1091      { Bad_Opcode },
    1092      { Bad_Opcode },
    1093      /* C0 */
    1094      { Bad_Opcode },
    1095      { Bad_Opcode },
    1096      { Bad_Opcode },
    1097      { Bad_Opcode },
    1098      { Bad_Opcode },
    1099      { Bad_Opcode },
    1100      { Bad_Opcode },
    1101      { Bad_Opcode },
    1102      /* C8 */
    1103      { Bad_Opcode },
    1104      { Bad_Opcode },
    1105      { Bad_Opcode },
    1106      { Bad_Opcode },
    1107      { Bad_Opcode },
    1108      { Bad_Opcode },
    1109      { Bad_Opcode },
    1110      { Bad_Opcode },
    1111      /* D0 */
    1112      { Bad_Opcode },
    1113      { Bad_Opcode },
    1114      { Bad_Opcode },
    1115      { Bad_Opcode },
    1116      { Bad_Opcode },
    1117      { Bad_Opcode },
    1118      { Bad_Opcode },
    1119      { Bad_Opcode },
    1120      /* D8 */
    1121      { Bad_Opcode },
    1122      { Bad_Opcode },
    1123      { Bad_Opcode },
    1124      { Bad_Opcode },
    1125      { Bad_Opcode },
    1126      { Bad_Opcode },
    1127      { Bad_Opcode },
    1128      { Bad_Opcode },
    1129      /* E0 */
    1130      { Bad_Opcode },
    1131      { Bad_Opcode },
    1132      { Bad_Opcode },
    1133      { Bad_Opcode },
    1134      { Bad_Opcode },
    1135      { Bad_Opcode },
    1136      { Bad_Opcode },
    1137      { Bad_Opcode },
    1138      /* E8 */
    1139      { Bad_Opcode },
    1140      { Bad_Opcode },
    1141      { Bad_Opcode },
    1142      { Bad_Opcode },
    1143      { Bad_Opcode },
    1144      { Bad_Opcode },
    1145      { Bad_Opcode },
    1146      { Bad_Opcode },
    1147      /* F0 */
    1148      { Bad_Opcode },
    1149      { Bad_Opcode },
    1150      { Bad_Opcode },
    1151      { Bad_Opcode },
    1152      { Bad_Opcode },
    1153      { Bad_Opcode },
    1154      { Bad_Opcode },
    1155      { Bad_Opcode },
    1156      /* F8 */
    1157      { Bad_Opcode },
    1158      { Bad_Opcode },
    1159      { Bad_Opcode },
    1160      { Bad_Opcode },
    1161      { Bad_Opcode },
    1162      { Bad_Opcode },
    1163      { Bad_Opcode },
    1164      { Bad_Opcode },
    1165    },
    1166    /* EVEX_MAP6_ */
    1167    {
    1168      /* 00 */
    1169      { Bad_Opcode },
    1170      { Bad_Opcode },
    1171      { Bad_Opcode },
    1172      { Bad_Opcode },
    1173      { Bad_Opcode },
    1174      { Bad_Opcode },
    1175      { Bad_Opcode },
    1176      { Bad_Opcode },
    1177      /* 08 */
    1178      { Bad_Opcode },
    1179      { Bad_Opcode },
    1180      { Bad_Opcode },
    1181      { Bad_Opcode },
    1182      { Bad_Opcode },
    1183      { Bad_Opcode },
    1184      { Bad_Opcode },
    1185      { Bad_Opcode },
    1186      /* 10 */
    1187      { Bad_Opcode },
    1188      { Bad_Opcode },
    1189      { Bad_Opcode },
    1190      { PREFIX_TABLE (PREFIX_EVEX_MAP6_13) },
    1191      { Bad_Opcode },
    1192      { Bad_Opcode },
    1193      { Bad_Opcode },
    1194      { Bad_Opcode },
    1195      /* 18 */
    1196      { Bad_Opcode },
    1197      { Bad_Opcode },
    1198      { Bad_Opcode },
    1199      { Bad_Opcode },
    1200      { Bad_Opcode },
    1201      { Bad_Opcode },
    1202      { Bad_Opcode },
    1203      { Bad_Opcode },
    1204      /* 20 */
    1205      { Bad_Opcode },
    1206      { Bad_Opcode },
    1207      { Bad_Opcode },
    1208      { Bad_Opcode },
    1209      { Bad_Opcode },
    1210      { Bad_Opcode },
    1211      { Bad_Opcode },
    1212      { Bad_Opcode },
    1213      /* 28 */
    1214      { Bad_Opcode },
    1215      { Bad_Opcode },
    1216      { Bad_Opcode },
    1217      { Bad_Opcode },
    1218      { "vscalefp%XH",      { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1219      { "vscalefs%XH",      { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1220      { Bad_Opcode },
    1221      { Bad_Opcode },
    1222      /* 30 */
    1223      { Bad_Opcode },
    1224      { Bad_Opcode },
    1225      { Bad_Opcode },
    1226      { Bad_Opcode },
    1227      { Bad_Opcode },
    1228      { Bad_Opcode },
    1229      { Bad_Opcode },
    1230      { Bad_Opcode },
    1231      /* 38 */
    1232      { Bad_Opcode },
    1233      { Bad_Opcode },
    1234      { Bad_Opcode },
    1235      { Bad_Opcode },
    1236      { Bad_Opcode },
    1237      { Bad_Opcode },
    1238      { Bad_Opcode },
    1239      { Bad_Opcode },
    1240      /* 40 */
    1241      { Bad_Opcode },
    1242      { Bad_Opcode },
    1243      { "vgetexpp%XH",      { XM, EXxh, EXxEVexS }, PREFIX_DATA },
    1244      { "vgetexps%XH",      { XMScalar, VexScalar, EXw, EXxEVexS }, PREFIX_DATA },
    1245      { Bad_Opcode },
    1246      { Bad_Opcode },
    1247      { Bad_Opcode },
    1248      { Bad_Opcode },
    1249      /* 48 */
    1250      { Bad_Opcode },
    1251      { Bad_Opcode },
    1252      { Bad_Opcode },
    1253      { Bad_Opcode },
    1254      { "vrcpp%XH",	  { XM, EXxh }, PREFIX_DATA },
    1255      { "vrcps%XH",	  { XMScalar, VexScalar, EXw }, PREFIX_DATA },
    1256      { "vrsqrtp%XH",       { XM, EXxh }, PREFIX_DATA },
    1257      { "vrsqrts%XH",       { XMScalar, VexScalar, EXw }, PREFIX_DATA },
    1258      /* 50 */
    1259      { Bad_Opcode },
    1260      { Bad_Opcode },
    1261      { Bad_Opcode },
    1262      { Bad_Opcode },
    1263      { Bad_Opcode },
    1264      { Bad_Opcode },
    1265      { PREFIX_TABLE (PREFIX_EVEX_MAP6_56) },
    1266      { PREFIX_TABLE (PREFIX_EVEX_MAP6_57) },
    1267      /* 58 */
    1268      { Bad_Opcode },
    1269      { Bad_Opcode },
    1270      { Bad_Opcode },
    1271      { Bad_Opcode },
    1272      { Bad_Opcode },
    1273      { Bad_Opcode },
    1274      { Bad_Opcode },
    1275      { Bad_Opcode },
    1276      /* 60 */
    1277      { Bad_Opcode },
    1278      { Bad_Opcode },
    1279      { Bad_Opcode },
    1280      { Bad_Opcode },
    1281      { Bad_Opcode },
    1282      { Bad_Opcode },
    1283      { Bad_Opcode },
    1284      { Bad_Opcode },
    1285      /* 68 */
    1286      { Bad_Opcode },
    1287      { Bad_Opcode },
    1288      { Bad_Opcode },
    1289      { Bad_Opcode },
    1290      { Bad_Opcode },
    1291      { Bad_Opcode },
    1292      { Bad_Opcode },
    1293      { Bad_Opcode },
    1294      /* 70 */
    1295      { Bad_Opcode },
    1296      { Bad_Opcode },
    1297      { Bad_Opcode },
    1298      { Bad_Opcode },
    1299      { Bad_Opcode },
    1300      { Bad_Opcode },
    1301      { Bad_Opcode },
    1302      { Bad_Opcode },
    1303      /* 78 */
    1304      { Bad_Opcode },
    1305      { Bad_Opcode },
    1306      { Bad_Opcode },
    1307      { Bad_Opcode },
    1308      { Bad_Opcode },
    1309      { Bad_Opcode },
    1310      { Bad_Opcode },
    1311      { Bad_Opcode },
    1312      /* 80 */
    1313      { Bad_Opcode },
    1314      { Bad_Opcode },
    1315      { Bad_Opcode },
    1316      { Bad_Opcode },
    1317      { Bad_Opcode },
    1318      { Bad_Opcode },
    1319      { Bad_Opcode },
    1320      { Bad_Opcode },
    1321      /* 88 */
    1322      { Bad_Opcode },
    1323      { Bad_Opcode },
    1324      { Bad_Opcode },
    1325      { Bad_Opcode },
    1326      { Bad_Opcode },
    1327      { Bad_Opcode },
    1328      { Bad_Opcode },
    1329      { Bad_Opcode },
    1330      /* 90 */
    1331      { Bad_Opcode },
    1332      { Bad_Opcode },
    1333      { Bad_Opcode },
    1334      { Bad_Opcode },
    1335      { Bad_Opcode },
    1336      { Bad_Opcode },
    1337      { "vfmaddsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1338      { "vfmsubadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1339      /* 98 */
    1340      { "vfmadd132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1341      { "vfmadd132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1342      { "vfmsub132p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1343      { "vfmsub132s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1344      { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1345      { "vfnmadd132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1346      { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1347      { "vfnmsub132s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1348      /* A0 */
    1349      { Bad_Opcode },
    1350      { Bad_Opcode },
    1351      { Bad_Opcode },
    1352      { Bad_Opcode },
    1353      { Bad_Opcode },
    1354      { Bad_Opcode },
    1355      { "vfmaddsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1356      { "vfmsubadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1357      /* A8 */
    1358      { "vfmadd213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1359      { "vfmadd213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1360      { "vfmsub213p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1361      { "vfmsub213s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1362      { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1363      { "vfnmadd213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1364      { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1365      { "vfnmsub213s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1366      /* B0 */
    1367      { Bad_Opcode },
    1368      { Bad_Opcode },
    1369      { Bad_Opcode },
    1370      { Bad_Opcode },
    1371      { Bad_Opcode },
    1372      { Bad_Opcode },
    1373      { "vfmaddsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1374      { "vfmsubadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1375      /* B8 */
    1376      { "vfmadd231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1377      { "vfmadd231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1378      { "vfmsub231p%XH",  { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1379      { "vfmsub231s%XH",  { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1380      { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1381      { "vfnmadd231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1382      { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, PREFIX_DATA },
    1383      { "vfnmsub231s%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, PREFIX_DATA },
    1384      /* C0 */
    1385      { Bad_Opcode },
    1386      { Bad_Opcode },
    1387      { Bad_Opcode },
    1388      { Bad_Opcode },
    1389      { Bad_Opcode },
    1390      { Bad_Opcode },
    1391      { Bad_Opcode },
    1392      { Bad_Opcode },
    1393      /* C8 */
    1394      { Bad_Opcode },
    1395      { Bad_Opcode },
    1396      { Bad_Opcode },
    1397      { Bad_Opcode },
    1398      { Bad_Opcode },
    1399      { Bad_Opcode },
    1400      { Bad_Opcode },
    1401      { Bad_Opcode },
    1402      /* D0 */
    1403      { Bad_Opcode },
    1404      { Bad_Opcode },
    1405      { Bad_Opcode },
    1406      { Bad_Opcode },
    1407      { Bad_Opcode },
    1408      { Bad_Opcode },
    1409      { PREFIX_TABLE (PREFIX_EVEX_MAP6_D6) },
    1410      { PREFIX_TABLE (PREFIX_EVEX_MAP6_D7) },
    1411      /* D8 */
    1412      { Bad_Opcode },
    1413      { Bad_Opcode },
    1414      { Bad_Opcode },
    1415      { Bad_Opcode },
    1416      { Bad_Opcode },
    1417      { Bad_Opcode },
    1418      { Bad_Opcode },
    1419      { Bad_Opcode },
    1420      /* E0 */
    1421      { Bad_Opcode },
    1422      { Bad_Opcode },
    1423      { Bad_Opcode },
    1424      { Bad_Opcode },
    1425      { Bad_Opcode },
    1426      { Bad_Opcode },
    1427      { Bad_Opcode },
    1428      { Bad_Opcode },
    1429      /* E8 */
    1430      { Bad_Opcode },
    1431      { Bad_Opcode },
    1432      { Bad_Opcode },
    1433      { Bad_Opcode },
    1434      { Bad_Opcode },
    1435      { Bad_Opcode },
    1436      { Bad_Opcode },
    1437      { Bad_Opcode },
    1438      /* F0 */
    1439      { Bad_Opcode },
    1440      { Bad_Opcode },
    1441      { Bad_Opcode },
    1442      { Bad_Opcode },
    1443      { Bad_Opcode },
    1444      { Bad_Opcode },
    1445      { Bad_Opcode },
    1446      { Bad_Opcode },
    1447      /* F8 */
    1448      { Bad_Opcode },
    1449      { Bad_Opcode },
    1450      { Bad_Opcode },
    1451      { Bad_Opcode },
    1452      { Bad_Opcode },
    1453      { Bad_Opcode },
    1454      { Bad_Opcode },
    1455      { Bad_Opcode },
    1456    },
    1457  };