Sync libiberty with upstream GCC.
[binutils-gdb.git] / opcodes / i386-dis-evex.h
index bc304c84fab46ae4a8e3a64c1794e967ad9cd884..c119f558600a37e196239bfa3d577cab16abb36b 100644 (file)
@@ -387,10 +387,10 @@ static const struct dis386 evex_table[][256] = {
     /* 50 */
     { Bad_Opcode },
     { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
     { Bad_Opcode },
     { Bad_Opcode },
     /* 58 */
@@ -2005,6 +2005,26 @@ static const struct dis386 evex_table[][256] = {
     { Bad_Opcode },
     { "vrsqrt14s%XW",  { XMScalar, VexScalar, EXxmm_mdq }, 0 },
   },
+  /* PREFIX_EVEX_0F3852 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vp4dpwssd",     { XM, Vex, EXxmm }, 0 },
+  },
+  /* PREFIX_EVEX_0F3853 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vp4dpwssds",    { XM, Vex, EXxmm }, 0 },
+  },
+  /* PREFIX_EVEX_0F3855 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3855_P_2) },
+  },
   /* PREFIX_EVEX_0F3858 */
   {
     { Bad_Opcode },
@@ -2547,7 +2567,7 @@ static const struct dis386 evex_table[][256] = {
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpextrw",       { EdqwS, XM, Ib }, 0 },
+    { "vpextrw",       { Edqw, XM, Ib }, 0 },
   },
   /* PREFIX_EVEX_0F3A16 */
   {
@@ -3563,6 +3583,11 @@ static const struct dis386 evex_table[][256] = {
     { "vpmulld",       { XM, Vex, EXx }, 0 },
     { "vpmullq",       { XM, Vex, EXx }, 0 },
   },
+  /* EVEX_W_0F3855_P_2 */
+  {
+    { "vpopcntd",      { XM, EXx }, 0 },
+    { "vpopcntq",      { XM, EXx }, 0 },
+  },
   /* EVEX_W_0F3858_P_2 */
   {
     { "vpbroadcastd",  { XM, EXxmm_md }, 0 },