dis_tables_avx.inc 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479
  1. /////////////////////////////////////////////////////////////////////////
  2. // $Id: dis_tables_avx.inc 11878 2013-10-11 20:09:51Z sshwarts $
  3. /////////////////////////////////////////////////////////////////////////
  4. //
  5. // Copyright (c) 2011 Stanislav Shwartsman
  6. // Written by Stanislav Shwartsman [sshwarts at sourceforge net]
  7. //
  8. // This library is free software; you can redistribute it and/or
  9. // modify it under the terms of the GNU Lesser General Public
  10. // License as published by the Free Software Foundation; either
  11. // version 2 of the License, or (at your option) any later version.
  12. //
  13. // This library is distributed in the hope that it will be useful,
  14. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. // Lesser General Public License for more details.
  17. //
  18. // You should have received a copy of the GNU Lesser General Public
  19. // License along with this library; if not, write to the Free Software
  20. // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  21. //
  22. /////////////////////////////////////////////////////////////////////////
  23. /* ************************************************************************ */
  24. /* AVX VEX-encoded 0x0F, 0x0F 0x38 and 0x0F 0x3A opcodes */
  25. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f10[4] = {
  26. /* -- */ { 0, &Ia_vmovups_Vps_Wps },
  27. /* 66 */ { 0, &Ia_vmovupd_Vpd_Wpd },
  28. /* F3 */ { 0, &Ia_vmovss_Vss_Wss },
  29. /* F2 */ { 0, &Ia_vmovsd_Vsd_Wsd }
  30. };
  31. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f11[4] = {
  32. /* -- */ { 0, &Ia_vmovups_Wps_Vps },
  33. /* 66 */ { 0, &Ia_vmovupd_Wpd_Vpd },
  34. /* F3 */ { 0, &Ia_vmovss_Wss_Vss },
  35. /* F2 */ { 0, &Ia_vmovsd_Wsd_Vsd }
  36. };
  37. static BxDisasmOpcodeTable_t BxDisasmGroupModVMOVHLPS[2] = {
  38. /* R */ { 0, &Ia_vmovhlps_Vps_Hdq_Udq },
  39. /* M */ { 0, &Ia_vmovlps_Vps_Hdq_Mq }
  40. };
  41. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f12[4] = {
  42. /* -- */ { GRPMOD(VMOVHLPS) },
  43. /* 66 */ { 0, &Ia_vmovlpd_Vpd_Hdq_Mq },
  44. /* F3 */ { 0, &Ia_vmovsldup_Vdq_Wdq },
  45. /* F2 */ { 0, &Ia_vmovddup_Vdq_Wq }
  46. };
  47. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f13[2] = {
  48. /* -- */ { 0, &Ia_vmovlps_Mq_Vps },
  49. /* 66 */ { 0, &Ia_vmovlpd_Mq_Vpd }
  50. };
  51. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f14[2] = {
  52. /* -- */ { 0, &Ia_vunpcklps_Vps_Hps_Wps },
  53. /* 66 */ { 0, &Ia_vunpcklpd_Vpd_Hpd_Wpd }
  54. };
  55. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f15[2] = {
  56. /* -- */ { 0, &Ia_vunpckhps_Vps_Hps_Wps },
  57. /* 66 */ { 0, &Ia_vunpckhpd_Vpd_Hpd_Wpd }
  58. };
  59. static BxDisasmOpcodeTable_t BxDisasmGroupModVMOVLHPS[2] = {
  60. /* R */ { 0, &Ia_vmovlhps_Vps_Hdq_Udq },
  61. /* M */ { 0, &Ia_vmovhps_Vps_Hdq_Mq }
  62. };
  63. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f16[4] = {
  64. /* -- */ { GRPMOD(VMOVLHPS) },
  65. /* 66 */ { 0, &Ia_vmovhpd_Vpd_Hdq_Mq },
  66. /* F3 */ { 0, &Ia_vmovshdup_Vdq_Wdq },
  67. /* F2 */ { 0, &Ia_Invalid }
  68. };
  69. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f17[2] = {
  70. /* -- */ { 0, &Ia_vmovhps_Mq_Vps },
  71. /* 66 */ { 0, &Ia_vmovhpd_Mq_Vpd }
  72. };
  73. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f28[2] = {
  74. /* -- */ { 0, &Ia_vmovaps_Vps_Wps },
  75. /* 66 */ { 0, &Ia_vmovapd_Vpd_Wpd }
  76. };
  77. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f29[2] = {
  78. /* -- */ { 0, &Ia_vmovaps_Wps_Vps },
  79. /* 66 */ { 0, &Ia_vmovapd_Wpd_Vpd }
  80. };
  81. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f2a[4] = {
  82. /* -- */ { 0, &Ia_Invalid },
  83. /* 66 */ { 0, &Ia_Invalid },
  84. /* F3 */ { 0, &Ia_vcvtsi2ss_Vss_Hps_Ey },
  85. /* F2 */ { 0, &Ia_vcvtsi2sd_Vsd_Hpd_Ey }
  86. };
  87. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f2b[2] = {
  88. /* -- */ { 0, &Ia_vmovntps_Mps_Vps },
  89. /* 66 */ { 0, &Ia_vmovntpd_Mpd_Vpd }
  90. };
  91. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f2c[4] = {
  92. /* -- */ { 0, &Ia_Invalid },
  93. /* 66 */ { 0, &Ia_Invalid },
  94. /* F3 */ { 0, &Ia_vcvttss2si_Gy_Wss },
  95. /* F2 */ { 0, &Ia_vcvttsd2si_Gy_Wsd }
  96. };
  97. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f2d[4] = {
  98. /* -- */ { 0, &Ia_Invalid },
  99. /* 66 */ { 0, &Ia_Invalid },
  100. /* F3 */ { 0, &Ia_vcvtss2si_Gy_Wss },
  101. /* F2 */ { 0, &Ia_vcvtsd2si_Gy_Wsd }
  102. };
  103. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f2e[2] = {
  104. /* -- */ { 0, &Ia_vucomiss_Vss_Wss },
  105. /* 66 */ { 0, &Ia_vucomisd_Vsd_Wsd }
  106. };
  107. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f2f[2] = {
  108. /* -- */ { 0, &Ia_vcomiss_Vss_Wss },
  109. /* 66 */ { 0, &Ia_vcomisd_Vsd_Wsd }
  110. };
  111. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f50[2] = {
  112. /* -- */ { 0, &Ia_vmovmskps_Gd_Ups },
  113. /* 66 */ { 0, &Ia_vmovmskpd_Gd_Upd }
  114. };
  115. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f51[4] = {
  116. /* -- */ { 0, &Ia_vsqrtps_Vps_Wps },
  117. /* 66 */ { 0, &Ia_vsqrtpd_Vpd_Wpd },
  118. /* F3 */ { 0, &Ia_vsqrtss_Vss_Hps_Wss },
  119. /* F2 */ { 0, &Ia_vsqrtsd_Vsd_Hpd_Wsd }
  120. };
  121. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f52[4] = {
  122. /* -- */ { 0, &Ia_vrsqrtps_Vps_Wps },
  123. /* 66 */ { 0, &Ia_Invalid },
  124. /* F3 */ { 0, &Ia_vrsqrtss_Vss_Hps_Wss },
  125. /* F2 */ { 0, &Ia_Invalid }
  126. };
  127. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f53[4] = {
  128. /* -- */ { 0, &Ia_vrcpps_Vps_Wps },
  129. /* 66 */ { 0, &Ia_Invalid },
  130. /* F3 */ { 0, &Ia_vrcpss_Vss_Hps_Wss },
  131. /* F2 */ { 0, &Ia_Invalid }
  132. };
  133. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f54[2] = {
  134. /* -- */ { 0, &Ia_vandps_Vps_Hps_Wps },
  135. /* 66 */ { 0, &Ia_vandpd_Vpd_Hpd_Wpd }
  136. };
  137. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f55[2] = {
  138. /* -- */ { 0, &Ia_vandnps_Vps_Hps_Wps },
  139. /* 66 */ { 0, &Ia_vandnpd_Vpd_Hpd_Wpd }
  140. };
  141. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f56[2] = {
  142. /* -- */ { 0, &Ia_vorps_Vps_Hps_Wps },
  143. /* 66 */ { 0, &Ia_vorpd_Vpd_Hpd_Wpd }
  144. };
  145. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f57[2] = {
  146. /* -- */ { 0, &Ia_vxorps_Vps_Hps_Wps },
  147. /* 66 */ { 0, &Ia_vxorpd_Vpd_Hpd_Wpd }
  148. };
  149. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f58[4] = {
  150. /* -- */ { 0, &Ia_vaddps_Vps_Hps_Wps },
  151. /* 66 */ { 0, &Ia_vaddpd_Vpd_Hpd_Wpd },
  152. /* F3 */ { 0, &Ia_vaddss_Vss_Hps_Wss },
  153. /* F2 */ { 0, &Ia_vaddsd_Vsd_Hpd_Wsd }
  154. };
  155. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f59[4] = {
  156. /* -- */ { 0, &Ia_vmulps_Vps_Hps_Wps },
  157. /* 66 */ { 0, &Ia_vmulpd_Vpd_Hpd_Wpd },
  158. /* F3 */ { 0, &Ia_vmulss_Vss_Hps_Wss },
  159. /* F2 */ { 0, &Ia_vmulsd_Vsd_Hpd_Wsd }
  160. };
  161. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f5a[4] = {
  162. /* -- */ { 0, &Ia_vcvtps2pd_Vpd_Wps },
  163. /* 66 */ { 0, &Ia_vcvtpd2ps_Vps_Wpd },
  164. /* F3 */ { 0, &Ia_vcvtss2sd_Vsd_Hpd_Wss },
  165. /* F2 */ { 0, &Ia_vcvtsd2ss_Vss_Hps_Wsd }
  166. };
  167. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f5b[4] = {
  168. /* -- */ { 0, &Ia_vcvtdq2ps_Vps_Wdq },
  169. /* 66 */ { 0, &Ia_vcvtps2dq_Vdq_Wps },
  170. /* F3 */ { 0, &Ia_vcvttps2dq_Vdq_Wps },
  171. /* F2 */ { 0, &Ia_Invalid }
  172. };
  173. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f5c[4] = {
  174. /* -- */ { 0, &Ia_vsubps_Vps_Hps_Wps },
  175. /* 66 */ { 0, &Ia_vsubpd_Vpd_Hpd_Wpd },
  176. /* F3 */ { 0, &Ia_vsubss_Vss_Hps_Wss },
  177. /* F2 */ { 0, &Ia_vsubsd_Vsd_Hpd_Wsd }
  178. };
  179. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f5d[4] = {
  180. /* -- */ { 0, &Ia_vminps_Vps_Hps_Wps },
  181. /* 66 */ { 0, &Ia_vminpd_Vpd_Hpd_Wpd },
  182. /* F3 */ { 0, &Ia_vminss_Vss_Hps_Wss },
  183. /* F2 */ { 0, &Ia_vminsd_Vsd_Hpd_Wsd }
  184. };
  185. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f5e[4] = {
  186. /* -- */ { 0, &Ia_vdivps_Vps_Hps_Wps },
  187. /* 66 */ { 0, &Ia_vdivpd_Vpd_Hpd_Wpd },
  188. /* F3 */ { 0, &Ia_vdivss_Vss_Hps_Wss },
  189. /* F2 */ { 0, &Ia_vdivsd_Vsd_Hpd_Wsd }
  190. };
  191. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f5f[4] = {
  192. /* -- */ { 0, &Ia_vmaxps_Vps_Hps_Wps },
  193. /* 66 */ { 0, &Ia_vmaxpd_Vpd_Hpd_Wpd },
  194. /* F3 */ { 0, &Ia_vmaxss_Vss_Hps_Wss },
  195. /* F2 */ { 0, &Ia_vmaxsd_Vsd_Hpd_Wsd }
  196. };
  197. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_AVX0f6e[3] = {
  198. /* 0 */ { GRPSSE66(Ia_vmovd_Vdq_Ed) },
  199. /* 1 */ { GRPSSE66(Ia_vmovq_Vdq_Eq) }
  200. };
  201. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f6f[4] = {
  202. /* -- */ { 0, &Ia_Invalid },
  203. /* 66 */ { 0, &Ia_vmovdqa_Vdq_Wdq },
  204. /* F3 */ { 0, &Ia_vmovdqu_Vdq_Wdq },
  205. /* F2 */ { 0, &Ia_Invalid }
  206. };
  207. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f70[4] = {
  208. /* -- */ { 0, &Ia_Invalid },
  209. /* 66 */ { 0, &Ia_vpshufd_Vdq_Hdq_Wdq_Ib },
  210. /* F3 */ { 0, &Ia_vpshufhw_Vdq_Hdq_Wdq_Ib },
  211. /* F2 */ { 0, &Ia_vpshuflw_Vdq_Hdq_Wdq_Ib }
  212. };
  213. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f7c[4] = {
  214. /* -- */ { 0, &Ia_Invalid },
  215. /* 66 */ { 0, &Ia_vhaddpd_Vpd_Hpd_Wpd },
  216. /* F3 */ { 0, &Ia_Invalid },
  217. /* F2 */ { 0, &Ia_vhaddps_Vps_Hps_Wps }
  218. };
  219. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f7d[4] = {
  220. /* -- */ { 0, &Ia_Invalid },
  221. /* 66 */ { 0, &Ia_vhsubpd_Vpd_Hpd_Wpd },
  222. /* F3 */ { 0, &Ia_Invalid },
  223. /* F2 */ { 0, &Ia_vhsubps_Vps_Hps_Wps }
  224. };
  225. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_AVX660f7e[3] = {
  226. /* 0 */ { 0, &Ia_vmovd_Ed_Vd },
  227. /* 1 */ { 0, &Ia_vmovq_Eq_Vq }
  228. };
  229. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f7e[4] = {
  230. /* -- */ { 0, &Ia_Invalid },
  231. /* 66 */ { GRPVEXW(AVX660f7e) },
  232. /* F3 */ { 0, &Ia_vmovq_Vq_Wq },
  233. /* F2 */ { 0, &Ia_Invalid }
  234. };
  235. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f7f[4] = {
  236. /* -- */ { 0, &Ia_Invalid },
  237. /* 66 */ { 0, &Ia_vmovdqa_Wdq_Vdq },
  238. /* F3 */ { 0, &Ia_vmovdqu_Wdq_Vdq },
  239. /* F2 */ { 0, &Ia_Invalid }
  240. };
  241. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0fc2[4] = {
  242. /* -- */ { 0, &Ia_vcmpps_Vps_Hps_Wps_Ib },
  243. /* 66 */ { 0, &Ia_vcmppd_Vpd_Hpd_Wpd_Ib },
  244. /* F3 */ { 0, &Ia_vcmpss_Vss_Hps_Wss_Ib },
  245. /* F2 */ { 0, &Ia_vcmpsd_Vsd_Hpd_Wsd_Ib }
  246. };
  247. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0fc6[2] = {
  248. /* -- */ { 0, &Ia_vshufps_Vps_Hps_Wps_Ib },
  249. /* 66 */ { 0, &Ia_vshufpd_Vpd_Hpd_Wpd_Ib }
  250. };
  251. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0fd0[4] = {
  252. /* -- */ { 0, &Ia_Invalid },
  253. /* 66 */ { 0, &Ia_vaddsubpd_Vpd_Hpd_Wpd },
  254. /* F3 */ { 0, &Ia_Invalid },
  255. /* F2 */ { 0, &Ia_vaddsubps_Vps_Hps_Wps }
  256. };
  257. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0fe6[4] = {
  258. /* -- */ { 0, &Ia_Invalid },
  259. /* 66 */ { 0, &Ia_vcvttpd2dq_Vq_Wpd },
  260. /* F3 */ { 0, &Ia_vcvtdq2pd_Vpd_Wq },
  261. /* F2 */ { 0, &Ia_vcvtpd2dq_Vq_Wpd }
  262. };
  263. /* Group12 */
  264. static BxDisasmOpcodeTable_t BxDisasmGroupAVXG12[8] = {
  265. /* 0 */ { 0, &Ia_Invalid },
  266. /* 1 */ { 0, &Ia_Invalid },
  267. /* 2 */ { GRPSSE66(Ia_vpsrlw_Hdq_Udq_Ib) },
  268. /* 3 */ { 0, &Ia_Invalid },
  269. /* 4 */ { GRPSSE66(Ia_vpsraw_Hdq_Udq_Ib) },
  270. /* 5 */ { 0, &Ia_Invalid },
  271. /* 6 */ { GRPSSE66(Ia_vpsllw_Hdq_Udq_Ib) },
  272. /* 7 */ { 0, &Ia_Invalid }
  273. };
  274. /* Group13 */
  275. static BxDisasmOpcodeTable_t BxDisasmGroupAVXG13[8] = {
  276. /* 0 */ { 0, &Ia_Invalid },
  277. /* 1 */ { 0, &Ia_Invalid },
  278. /* 2 */ { GRPSSE66(Ia_vpsrld_Hdq_Udq_Ib) },
  279. /* 3 */ { 0, &Ia_Invalid },
  280. /* 4 */ { GRPSSE66(Ia_vpsrad_Hdq_Udq_Ib) },
  281. /* 5 */ { 0, &Ia_Invalid },
  282. /* 6 */ { GRPSSE66(Ia_vpslld_Hdq_Udq_Ib) },
  283. /* 7 */ { 0, &Ia_Invalid }
  284. };
  285. /* Group14 */
  286. static BxDisasmOpcodeTable_t BxDisasmGroupAVXG14[8] = {
  287. /* 0 */ { 0, &Ia_Invalid },
  288. /* 1 */ { 0, &Ia_Invalid },
  289. /* 2 */ { GRPSSE66(Ia_vpsrlq_Hdq_Udq_Ib) },
  290. /* 3 */ { GRPSSE66(Ia_vpsrldq_Hdq_Udq_Ib) },
  291. /* 4 */ { 0, &Ia_Invalid },
  292. /* 5 */ { 0, &Ia_Invalid },
  293. /* 6 */ { GRPSSE66(Ia_vpsllq_Hdq_Udq_Ib) },
  294. /* 7 */ { GRPSSE66(Ia_vpslldq_Hdq_Udq_Ib) }
  295. };
  296. /* Group15 */
  297. static BxDisasmOpcodeTable_t BxDisasmGroupAVXG15M[8] = {
  298. /* 0 */ { 0, &Ia_Invalid },
  299. /* 1 */ { 0, &Ia_Invalid },
  300. /* 2 */ { 0, &Ia_vldmxcsr },
  301. /* 3 */ { 0, &Ia_vstmxcsr },
  302. /* 4 */ { 0, &Ia_Invalid },
  303. /* 5 */ { 0, &Ia_Invalid },
  304. /* 6 */ { 0, &Ia_Invalid },
  305. /* 7 */ { 0, &Ia_Invalid }
  306. };
  307. static BxDisasmOpcodeTable_t BxDisasmGroupModAVXG15[2] = {
  308. /* R */ { 0, &Ia_Invalid },
  309. /* M */ { GRPN(AVXG15M) }
  310. };
  311. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a16[2] = {
  312. /* 0 */ { GRPSSE66(Ia_vpextrd_Ed_Vdq_Ib) },
  313. /* 1 */ { GRPSSE66(Ia_vpextrq_Eq_Vdq_Ib) }
  314. };
  315. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a22[2] = {
  316. /* 0 */ { GRPSSE66(Ia_vpinsrd_Vdq_Hdq_Ed_Ib) },
  317. /* 1 */ { GRPSSE66(Ia_vpinsrq_Vdq_Hdq_Eq_Ib) }
  318. };
  319. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a00[2] = {
  320. /* 0 */ { 0, &Ia_Invalid },
  321. /* 1 */ { GRPSSE66(Ia_vpermq_Vdq_Wdq_Ib) }
  322. };
  323. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a01[2] = {
  324. /* 0 */ { 0, &Ia_Invalid },
  325. /* 1 */ { GRPSSE66(Ia_vpermpd_Vpd_Wpd_Ib) }
  326. };
  327. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3845[2] = {
  328. /* 0 */ { GRPSSE66(Ia_vpsrlvd_Vdq_Hdq_Wdq) },
  329. /* 1 */ { GRPSSE66(Ia_vpsrlvq_Vdq_Hdq_Wdq) }
  330. };
  331. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3847[2] = {
  332. /* 0 */ { GRPSSE66(Ia_vpsllvd_Vdq_Hdq_Wdq) },
  333. /* 1 */ { GRPSSE66(Ia_vpsllvq_Vdq_Hdq_Wdq) }
  334. };
  335. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f388c[2] = {
  336. /* 0 */ { GRPSSE66(Ia_vmaskmovd_Vdq_Hdq_Mdq) },
  337. /* 1 */ { GRPSSE66(Ia_vmaskmovq_Vdq_Hdq_Mdq) }
  338. };
  339. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f388e[2] = {
  340. /* 0 */ { GRPSSE66(Ia_vmaskmovd_Mdq_Hdq_Vdq) },
  341. /* 1 */ { GRPSSE66(Ia_vmaskmovq_Mdq_Hdq_Vdq) }
  342. };
  343. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3890[2] = {
  344. /* 0 */ { GRPSSE66(Ia_vgatherdd_Vdq_VSib_Hdq) },
  345. /* 1 */ { GRPSSE66(Ia_vgatherdq_Vdq_VSib_Hdq) }
  346. };
  347. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3891[2] = {
  348. /* 0 */ { GRPSSE66(Ia_vgatherqd_Vdq_VSib_Hdq) },
  349. /* 1 */ { GRPSSE66(Ia_vgatherqq_Vdq_VSib_Hdq) }
  350. };
  351. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3892[2] = {
  352. /* 0 */ { GRPSSE66(Ia_vgatherdps_Vps_VSib_Hps) },
  353. /* 1 */ { GRPSSE66(Ia_vgatherdpd_Vpd_VSib_Hpd) }
  354. };
  355. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3893[2] = {
  356. /* 0 */ { GRPSSE66(Ia_vgatherqps_Vps_VSib_Hps) },
  357. /* 1 */ { GRPSSE66(Ia_vgatherqpd_Vpd_VSib_Hpd) }
  358. };
  359. // FMA
  360. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3896[2] = {
  361. /* 0 */ { GRPSSE66(Ia_vfmaddsub132ps_Vps_Hps_Wps) },
  362. /* 1 */ { GRPSSE66(Ia_vfmaddsub132pd_Vpd_Hpd_Wpd) }
  363. };
  364. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3897[2] = {
  365. /* 0 */ { GRPSSE66(Ia_vfmsubadd132ps_Vps_Hps_Wps) },
  366. /* 1 */ { GRPSSE66(Ia_vfmsubadd132pd_Vpd_Hpd_Wpd) }
  367. };
  368. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3898[2] = {
  369. /* 0 */ { GRPSSE66(Ia_vfmadd132ps_Vps_Hps_Wps) },
  370. /* 1 */ { GRPSSE66(Ia_vfmadd132pd_Vpd_Hpd_Wpd) }
  371. };
  372. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3899[2] = {
  373. /* 0 */ { GRPSSE66(Ia_vfmadd132ss_Vps_Hss_Wss) },
  374. /* 1 */ { GRPSSE66(Ia_vfmadd132sd_Vpd_Hsd_Wsd) }
  375. };
  376. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f389a[2] = {
  377. /* 0 */ { GRPSSE66(Ia_vfmsub132ps_Vps_Hps_Wps) },
  378. /* 1 */ { GRPSSE66(Ia_vfmsub132pd_Vpd_Hpd_Wpd) }
  379. };
  380. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f389b[2] = {
  381. /* 0 */ { GRPSSE66(Ia_vfmsub132ss_Vps_Hss_Wss) },
  382. /* 1 */ { GRPSSE66(Ia_vfmsub132sd_Vpd_Hsd_Wsd) }
  383. };
  384. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f389c[2] = {
  385. /* 0 */ { GRPSSE66(Ia_vfnmadd132ps_Vps_Hps_Wps) },
  386. /* 1 */ { GRPSSE66(Ia_vfnmadd132pd_Vpd_Hpd_Wpd) }
  387. };
  388. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f389d[2] = {
  389. /* 0 */ { GRPSSE66(Ia_vfnmadd132ss_Vps_Hss_Wss) },
  390. /* 1 */ { GRPSSE66(Ia_vfnmadd132sd_Vpd_Hsd_Wsd) }
  391. };
  392. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f389e[2] = {
  393. /* 0 */ { GRPSSE66(Ia_vfnmsub132ps_Vps_Hps_Wps) },
  394. /* 1 */ { GRPSSE66(Ia_vfnmsub132pd_Vpd_Hpd_Wpd) }
  395. };
  396. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f389f[2] = {
  397. /* 0 */ { GRPSSE66(Ia_vfnmsub132ss_Vps_Hss_Wss) },
  398. /* 1 */ { GRPSSE66(Ia_vfnmsub132sd_Vpd_Hsd_Wsd) }
  399. };
  400. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38a6[2] = {
  401. /* 0 */ { GRPSSE66(Ia_vfmaddsub213ps_Vps_Hps_Wps) },
  402. /* 1 */ { GRPSSE66(Ia_vfmaddsub213pd_Vpd_Hpd_Wpd) }
  403. };
  404. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38a7[2] = {
  405. /* 0 */ { GRPSSE66(Ia_vfmsubadd213ps_Vps_Hps_Wps) },
  406. /* 1 */ { GRPSSE66(Ia_vfmsubadd213pd_Vpd_Hpd_Wpd) }
  407. };
  408. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38a8[2] = {
  409. /* 0 */ { GRPSSE66(Ia_vfmadd213ps_Vps_Hps_Wps) },
  410. /* 1 */ { GRPSSE66(Ia_vfmadd213pd_Vpd_Hpd_Wpd) }
  411. };
  412. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38a9[2] = {
  413. /* 0 */ { GRPSSE66(Ia_vfmadd213ss_Vps_Hss_Wss) },
  414. /* 1 */ { GRPSSE66(Ia_vfmadd213sd_Vpd_Hsd_Wsd) }
  415. };
  416. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38aa[2] = {
  417. /* 0 */ { GRPSSE66(Ia_vfmsub213ps_Vps_Hps_Wps) },
  418. /* 1 */ { GRPSSE66(Ia_vfmsub213pd_Vpd_Hpd_Wpd) }
  419. };
  420. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38ab[2] = {
  421. /* 0 */ { GRPSSE66(Ia_vfmsub213ss_Vps_Hss_Wss) },
  422. /* 1 */ { GRPSSE66(Ia_vfmsub213sd_Vpd_Hsd_Wsd) }
  423. };
  424. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38ac[2] = {
  425. /* 0 */ { GRPSSE66(Ia_vfnmadd213ps_Vps_Hps_Wps) },
  426. /* 1 */ { GRPSSE66(Ia_vfnmadd213pd_Vpd_Hpd_Wpd) }
  427. };
  428. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38ad[2] = {
  429. /* 0 */ { GRPSSE66(Ia_vfnmadd213ss_Vps_Hss_Wss) },
  430. /* 1 */ { GRPSSE66(Ia_vfnmadd213sd_Vpd_Hsd_Wsd) }
  431. };
  432. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38ae[2] = {
  433. /* 0 */ { GRPSSE66(Ia_vfnmsub213ps_Vps_Hps_Wps) },
  434. /* 1 */ { GRPSSE66(Ia_vfnmsub213pd_Vpd_Hpd_Wpd) }
  435. };
  436. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38af[2] = {
  437. /* 0 */ { GRPSSE66(Ia_vfnmsub213ss_Vps_Hss_Wss) },
  438. /* 1 */ { GRPSSE66(Ia_vfnmsub213sd_Vpd_Hsd_Wsd) }
  439. };
  440. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38b6[2] = {
  441. /* 0 */ { GRPSSE66(Ia_vfmaddsub231ps_Vps_Hps_Wps) },
  442. /* 1 */ { GRPSSE66(Ia_vfmaddsub231pd_Vpd_Hpd_Wpd) }
  443. };
  444. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38b7[2] = {
  445. /* 0 */ { GRPSSE66(Ia_vfmsubadd231ps_Vps_Hps_Wps) },
  446. /* 1 */ { GRPSSE66(Ia_vfmsubadd231pd_Vpd_Hpd_Wpd) }
  447. };
  448. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38b8[2] = {
  449. /* 0 */ { GRPSSE66(Ia_vfmadd231ps_Vps_Hps_Wps) },
  450. /* 1 */ { GRPSSE66(Ia_vfmadd231pd_Vpd_Hpd_Wpd) }
  451. };
  452. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38b9[2] = {
  453. /* 0 */ { GRPSSE66(Ia_vfmadd231ss_Vps_Hss_Wss) },
  454. /* 1 */ { GRPSSE66(Ia_vfmadd231sd_Vpd_Hsd_Wsd) }
  455. };
  456. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38ba[2] = {
  457. /* 0 */ { GRPSSE66(Ia_vfmsub231ps_Vps_Hps_Wps) },
  458. /* 1 */ { GRPSSE66(Ia_vfmsub231pd_Vpd_Hpd_Wpd) }
  459. };
  460. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38bb[2] = {
  461. /* 0 */ { GRPSSE66(Ia_vfmsub231ss_Vps_Hss_Wss) },
  462. /* 1 */ { GRPSSE66(Ia_vfmsub231sd_Vpd_Hsd_Wsd) }
  463. };
  464. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38bc[2] = {
  465. /* 0 */ { GRPSSE66(Ia_vfnmadd231ps_Vps_Hps_Wps) },
  466. /* 1 */ { GRPSSE66(Ia_vfnmadd231pd_Vpd_Hpd_Wpd) }
  467. };
  468. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38bd[2] = {
  469. /* 0 */ { GRPSSE66(Ia_vfnmadd231ss_Vps_Hss_Wss) },
  470. /* 1 */ { GRPSSE66(Ia_vfnmadd231sd_Vpd_Hsd_Wsd) }
  471. };
  472. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38be[2] = {
  473. /* 0 */ { GRPSSE66(Ia_vfnmsub231ps_Vps_Hps_Wps) },
  474. /* 1 */ { GRPSSE66(Ia_vfnmsub231pd_Vpd_Hpd_Wpd) }
  475. };
  476. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f38bf[2] = {
  477. /* 0 */ { GRPSSE66(Ia_vfnmsub231ss_Vps_Hss_Wss) },
  478. /* 1 */ { GRPSSE66(Ia_vfnmsub231sd_Vpd_Hsd_Wsd) }
  479. };
  480. // FMA
  481. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f38f5[4] = {
  482. /* -- */ { 0, &Ia_bzhi_Gy_Ey_By },
  483. /* 66 */ { 0, &Ia_Invalid },
  484. /* F3 */ { 0, &Ia_pext_Gy_By_Ey },
  485. /* F2 */ { 0, &Ia_pdep_Gy_By_Ey }
  486. };
  487. static BxDisasmOpcodeTable_t BxDisasmGroupAVX_0f38f7[4] = {
  488. /* -- */ { 0, &Ia_bextr_Gy_Ey_By },
  489. /* 66 */ { 0, &Ia_shlx_Gy_Ey_By },
  490. /* F3 */ { 0, &Ia_sarx_Gy_Ey_By },
  491. /* F2 */ { 0, &Ia_shrx_Gy_Ey_By }
  492. };
  493. /* Group17 */
  494. static BxDisasmOpcodeTable_t BxDisasmGroupAVXG17[8] = {
  495. /* 0 */ { 0, &Ia_Invalid },
  496. /* 1 */ { 0, &Ia_blsr_By_Ey },
  497. /* 2 */ { 0, &Ia_blsmsk_By_Ey },
  498. /* 3 */ { 0, &Ia_blsi_By_Ey },
  499. /* 4 */ { 0, &Ia_Invalid },
  500. /* 5 */ { 0, &Ia_Invalid },
  501. /* 6 */ { 0, &Ia_Invalid },
  502. /* 7 */ { 0, &Ia_Invalid }
  503. };
  504. // FMA4 (AMD)
  505. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a5c[2] = {
  506. /* 0 */ { GRPSSE66(Ia_vfmaddsubps_Vps_Hps_Wps_VIb) },
  507. /* 1 */ { GRPSSE66(Ia_vfmaddsubps_Vps_Hps_VIb_Wps) }
  508. };
  509. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a5d[2] = {
  510. /* 0 */ { GRPSSE66(Ia_vfmaddsubpd_Vpd_Hpd_Wpd_VIb) },
  511. /* 1 */ { GRPSSE66(Ia_vfmaddsubpd_Vpd_Hpd_VIb_Wpd) }
  512. };
  513. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a5e[2] = {
  514. /* 0 */ { GRPSSE66(Ia_vfmsubaddps_Vps_Hps_Wps_VIb) },
  515. /* 1 */ { GRPSSE66(Ia_vfmsubaddps_Vps_Hps_VIb_Wps) }
  516. };
  517. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a5f[2] = {
  518. /* 0 */ { GRPSSE66(Ia_vfmsubaddpd_Vpd_Hpd_Wpd_VIb) },
  519. /* 1 */ { GRPSSE66(Ia_vfmsubaddpd_Vpd_Hpd_VIb_Wpd) }
  520. };
  521. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a68[2] = {
  522. /* 0 */ { GRPSSE66(Ia_vfmaddps_Vps_Hps_Wps_VIb) },
  523. /* 1 */ { GRPSSE66(Ia_vfmaddps_Vps_Hps_VIb_Wps) }
  524. };
  525. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a69[2] = {
  526. /* 0 */ { GRPSSE66(Ia_vfmaddpd_Vpd_Hpd_Wpd_VIb) },
  527. /* 1 */ { GRPSSE66(Ia_vfmaddpd_Vpd_Hpd_VIb_Wpd) }
  528. };
  529. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a6a[2] = {
  530. /* 0 */ { GRPSSE66(Ia_vfmaddss_Vss_Hss_Wss_VIb) },
  531. /* 1 */ { GRPSSE66(Ia_vfmaddss_Vss_Hss_VIb_Wss) }
  532. };
  533. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a6b[2] = {
  534. /* 0 */ { GRPSSE66(Ia_vfmaddsd_Vsd_Hsd_Wsd_VIb) },
  535. /* 1 */ { GRPSSE66(Ia_vfmaddsd_Vsd_Hsd_VIb_Wsd) }
  536. };
  537. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a6c[2] = {
  538. /* 0 */ { GRPSSE66(Ia_vfmsubps_Vps_Hps_Wps_VIb) },
  539. /* 1 */ { GRPSSE66(Ia_vfmsubps_Vps_Hps_VIb_Wps) }
  540. };
  541. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a6d[2] = {
  542. /* 0 */ { GRPSSE66(Ia_vfmsubpd_Vpd_Hpd_Wpd_VIb) },
  543. /* 1 */ { GRPSSE66(Ia_vfmsubpd_Vpd_Hpd_VIb_Wpd) }
  544. };
  545. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a6e[2] = {
  546. /* 0 */ { GRPSSE66(Ia_vfmsubss_Vss_Hss_Wss_VIb) },
  547. /* 1 */ { GRPSSE66(Ia_vfmsubss_Vss_Hss_VIb_Wss) }
  548. };
  549. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a6f[2] = {
  550. /* 0 */ { GRPSSE66(Ia_vfmsubsd_Vsd_Hsd_Wsd_VIb) },
  551. /* 1 */ { GRPSSE66(Ia_vfmsubsd_Vsd_Hsd_VIb_Wsd) }
  552. };
  553. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a78[2] = {
  554. /* 0 */ { GRPSSE66(Ia_vfnmaddps_Vps_Hps_Wps_VIb) },
  555. /* 1 */ { GRPSSE66(Ia_vfnmaddps_Vps_Hps_VIb_Wps) }
  556. };
  557. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a79[2] = {
  558. /* 0 */ { GRPSSE66(Ia_vfnmaddpd_Vpd_Hpd_Wpd_VIb) },
  559. /* 1 */ { GRPSSE66(Ia_vfnmaddpd_Vpd_Hpd_VIb_Wpd) }
  560. };
  561. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a7a[2] = {
  562. /* 0 */ { GRPSSE66(Ia_vfnmaddss_Vss_Hss_Wss_VIb) },
  563. /* 1 */ { GRPSSE66(Ia_vfnmaddss_Vss_Hss_VIb_Wss) }
  564. };
  565. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a7b[2] = {
  566. /* 0 */ { GRPSSE66(Ia_vfnmaddsd_Vsd_Hsd_Wsd_VIb) },
  567. /* 1 */ { GRPSSE66(Ia_vfnmaddsd_Vsd_Hsd_VIb_Wsd) }
  568. };
  569. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a7c[2] = {
  570. /* 0 */ { GRPSSE66(Ia_vfnmsubps_Vps_Hps_Wps_VIb) },
  571. /* 1 */ { GRPSSE66(Ia_vfnmsubps_Vps_Hps_VIb_Wps) }
  572. };
  573. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a7d[2] = {
  574. /* 0 */ { GRPSSE66(Ia_vfnmsubpd_Vpd_Hpd_Wpd_VIb) },
  575. /* 1 */ { GRPSSE66(Ia_vfnmsubpd_Vpd_Hpd_VIb_Wpd) }
  576. };
  577. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a7e[2] = {
  578. /* 0 */ { GRPSSE66(Ia_vfnmsubss_Vss_Hss_Wss_VIb) },
  579. /* 1 */ { GRPSSE66(Ia_vfnmsubss_Vss_Hss_VIb_Wss) }
  580. };
  581. static BxDisasmOpcodeTable_t BxDisasmGrpVexW_0f3a7f[2] = {
  582. /* 0 */ { GRPSSE66(Ia_vfnmsubsd_Vsd_Hsd_Wsd_VIb) },
  583. /* 1 */ { GRPSSE66(Ia_vfnmsubsd_Vsd_Hsd_VIb_Wsd) }
  584. };
  585. // FMA4 (AMD)
  586. static BxDisasmOpcodeTable_t BxDisasmOpcodesAVX[256*3] = {
  587. // 256 entries for VEX-encoded 0x0F opcodes
  588. /* 00 */ { 0, &Ia_Invalid },
  589. /* 01 */ { 0, &Ia_Invalid },
  590. /* 02 */ { 0, &Ia_Invalid },
  591. /* 03 */ { 0, &Ia_Invalid },
  592. /* 04 */ { 0, &Ia_Invalid },
  593. /* 05 */ { 0, &Ia_Invalid },
  594. /* 06 */ { 0, &Ia_Invalid },
  595. /* 07 */ { 0, &Ia_Invalid },
  596. /* 08 */ { 0, &Ia_Invalid },
  597. /* 09 */ { 0, &Ia_Invalid },
  598. /* 0A */ { 0, &Ia_Invalid },
  599. /* 0B */ { 0, &Ia_Invalid },
  600. /* 0C */ { 0, &Ia_Invalid },
  601. /* 0D */ { 0, &Ia_Invalid },
  602. /* 0E */ { 0, &Ia_Invalid },
  603. /* 0F */ { 0, &Ia_Invalid },
  604. /* 10 */ { GRPAVX(0f10) },
  605. /* 11 */ { GRPAVX(0f11) },
  606. /* 12 */ { GRPAVX(0f12) },
  607. /* 13 */ { GRPAVX2(0f13) },
  608. /* 14 */ { GRPAVX2(0f14) },
  609. /* 15 */ { GRPAVX2(0f15) },
  610. /* 16 */ { GRPAVX(0f16) },
  611. /* 17 */ { GRPAVX2(0f17) },
  612. /* 18 */ { 0, &Ia_Invalid },
  613. /* 19 */ { 0, &Ia_Invalid },
  614. /* 1A */ { 0, &Ia_Invalid },
  615. /* 1B */ { 0, &Ia_Invalid },
  616. /* 1C */ { 0, &Ia_Invalid },
  617. /* 1D */ { 0, &Ia_Invalid },
  618. /* 1E */ { 0, &Ia_Invalid },
  619. /* 1F */ { 0, &Ia_Invalid },
  620. /* 20 */ { 0, &Ia_Invalid },
  621. /* 21 */ { 0, &Ia_Invalid },
  622. /* 22 */ { 0, &Ia_Invalid },
  623. /* 23 */ { 0, &Ia_Invalid },
  624. /* 24 */ { 0, &Ia_Invalid },
  625. /* 25 */ { 0, &Ia_Invalid },
  626. /* 26 */ { 0, &Ia_Invalid },
  627. /* 27 */ { 0, &Ia_Invalid },
  628. /* 28 */ { GRPAVX2(0f28) },
  629. /* 29 */ { GRPAVX2(0f29) },
  630. /* 2A */ { GRPAVX(0f2a) },
  631. /* 2B */ { GRPAVX2(0f2b) },
  632. /* 2C */ { GRPAVX(0f2c) },
  633. /* 2C */ { GRPAVX(0f2d) },
  634. /* 2E */ { GRPAVX2(0f2e) },
  635. /* 2F */ { GRPAVX2(0f2f) },
  636. /* 30 */ { 0, &Ia_Invalid },
  637. /* 31 */ { 0, &Ia_Invalid },
  638. /* 32 */ { 0, &Ia_Invalid },
  639. /* 33 */ { 0, &Ia_Invalid },
  640. /* 34 */ { 0, &Ia_Invalid },
  641. /* 35 */ { 0, &Ia_Invalid },
  642. /* 36 */ { 0, &Ia_Invalid },
  643. /* 37 */ { 0, &Ia_Invalid },
  644. /* 38 */ { 0, &Ia_Invalid },
  645. /* 39 */ { 0, &Ia_Invalid },
  646. /* 3A */ { 0, &Ia_Invalid },
  647. /* 3B */ { 0, &Ia_Invalid },
  648. /* 3C */ { 0, &Ia_Invalid },
  649. /* 3D */ { 0, &Ia_Invalid },
  650. /* 3E */ { 0, &Ia_Invalid },
  651. /* 3F */ { 0, &Ia_Invalid },
  652. /* 40 */ { 0, &Ia_Invalid },
  653. /* 41 */ { 0, &Ia_Invalid },
  654. /* 42 */ { 0, &Ia_Invalid },
  655. /* 43 */ { 0, &Ia_Invalid },
  656. /* 44 */ { 0, &Ia_Invalid },
  657. /* 45 */ { 0, &Ia_Invalid },
  658. /* 46 */ { 0, &Ia_Invalid },
  659. /* 47 */ { 0, &Ia_Invalid },
  660. /* 48 */ { 0, &Ia_Invalid },
  661. /* 49 */ { 0, &Ia_Invalid },
  662. /* 4A */ { 0, &Ia_Invalid },
  663. /* 4B */ { 0, &Ia_Invalid },
  664. /* 4C */ { 0, &Ia_Invalid },
  665. /* 4D */ { 0, &Ia_Invalid },
  666. /* 4E */ { 0, &Ia_Invalid },
  667. /* 4F */ { 0, &Ia_Invalid },
  668. /* 50 */ { GRPAVX2(0f50) },
  669. /* 51 */ { GRPAVX(0f51) },
  670. /* 52 */ { GRPAVX(0f52) },
  671. /* 53 */ { GRPAVX(0f53) },
  672. /* 54 */ { GRPAVX2(0f54) },
  673. /* 55 */ { GRPAVX2(0f55) },
  674. /* 56 */ { GRPAVX2(0f56) },
  675. /* 57 */ { GRPAVX2(0f57) },
  676. /* 58 */ { GRPAVX(0f58) },
  677. /* 59 */ { GRPAVX(0f59) },
  678. /* 5A */ { GRPAVX(0f5a) },
  679. /* 5B */ { GRPAVX(0f5b) },
  680. /* 5C */ { GRPAVX(0f5c) },
  681. /* 5D */ { GRPAVX(0f5d) },
  682. /* 5E */ { GRPAVX(0f5e) },
  683. /* 5F */ { GRPAVX(0f5f) },
  684. /* 60 */ { GRPSSE66(Ia_vpunpcklbw_Vdq_Hdq_Wdq) },
  685. /* 61 */ { GRPSSE66(Ia_vpunpcklwd_Vdq_Hdq_Wdq) },
  686. /* 62 */ { GRPSSE66(Ia_vpunpckldq_Vdq_Hdq_Wdq) },
  687. /* 63 */ { GRPSSE66(Ia_vpacksswb_Vdq_Hdq_Wdq) },
  688. /* 64 */ { GRPSSE66(Ia_vpcmpgtb_Vdq_Hdq_Wdq) },
  689. /* 65 */ { GRPSSE66(Ia_vpcmpgtw_Vdq_Hdq_Wdq) },
  690. /* 66 */ { GRPSSE66(Ia_vpcmpgtd_Vdq_Hdq_Wdq) },
  691. /* 67 */ { GRPSSE66(Ia_vpackuswb_Vdq_Hdq_Wdq) },
  692. /* 68 */ { GRPSSE66(Ia_vpunpckhbw_Vdq_Hdq_Wdq) },
  693. /* 69 */ { GRPSSE66(Ia_vpunpckhwd_Vdq_Hdq_Wdq) },
  694. /* 6A */ { GRPSSE66(Ia_vpunpckhdq_Vdq_Hdq_Wdq) },
  695. /* 6B */ { GRPSSE66(Ia_vpackssdw_Vdq_Hdq_Wdq) },
  696. /* 6C */ { GRPSSE66(Ia_vpunpcklqdq_Vdq_Hdq_Wdq) },
  697. /* 6D */ { GRPSSE66(Ia_vpunpckhqdq_Vdq_Hdq_Wdq) },
  698. /* 6E */ { GRPVEXW(AVX0f6e) },
  699. /* 6F */ { GRPAVX(0f6f) },
  700. /* 70 */ { GRPAVX(0f70) },
  701. /* 71 */ { GRPN(AVXG12) },
  702. /* 72 */ { GRPN(AVXG13) },
  703. /* 73 */ { GRPN(AVXG14) },
  704. /* 74 */ { GRPSSE66(Ia_vpcmpeqb_Vdq_Hdq_Wdq) },
  705. /* 75 */ { GRPSSE66(Ia_vpcmpeqw_Vdq_Hdq_Wdq) },
  706. /* 76 */ { GRPSSE66(Ia_vpcmpeqd_Vdq_Hdq_Wdq) },
  707. /* 77 */ { GRPSSENONE(Ia_vzeroupper) },
  708. /* 78 */ { 0, &Ia_Invalid },
  709. /* 79 */ { 0, &Ia_Invalid },
  710. /* 7A */ { 0, &Ia_Invalid },
  711. /* 7B */ { 0, &Ia_Invalid },
  712. /* 7C */ { GRPAVX(0f7c) },
  713. /* 7D */ { GRPAVX(0f7d) },
  714. /* 7E */ { GRPAVX(0f7e) },
  715. /* 7F */ { GRPAVX(0f7f) },
  716. /* 80 */ { 0, &Ia_Invalid },
  717. /* 81 */ { 0, &Ia_Invalid },
  718. /* 82 */ { 0, &Ia_Invalid },
  719. /* 83 */ { 0, &Ia_Invalid },
  720. /* 84 */ { 0, &Ia_Invalid },
  721. /* 85 */ { 0, &Ia_Invalid },
  722. /* 86 */ { 0, &Ia_Invalid },
  723. /* 87 */ { 0, &Ia_Invalid },
  724. /* 88 */ { 0, &Ia_Invalid },
  725. /* 89 */ { 0, &Ia_Invalid },
  726. /* 8A */ { 0, &Ia_Invalid },
  727. /* 8B */ { 0, &Ia_Invalid },
  728. /* 8C */ { 0, &Ia_Invalid },
  729. /* 8D */ { 0, &Ia_Invalid },
  730. /* 8E */ { 0, &Ia_Invalid },
  731. /* 8F */ { 0, &Ia_Invalid },
  732. /* 90 */ { 0, &Ia_Invalid },
  733. /* 91 */ { 0, &Ia_Invalid },
  734. /* 92 */ { 0, &Ia_Invalid },
  735. /* 93 */ { 0, &Ia_Invalid },
  736. /* 94 */ { 0, &Ia_Invalid },
  737. /* 95 */ { 0, &Ia_Invalid },
  738. /* 96 */ { 0, &Ia_Invalid },
  739. /* 97 */ { 0, &Ia_Invalid },
  740. /* 98 */ { 0, &Ia_Invalid },
  741. /* 99 */ { 0, &Ia_Invalid },
  742. /* 9A */ { 0, &Ia_Invalid },
  743. /* 9B */ { 0, &Ia_Invalid },
  744. /* 9C */ { 0, &Ia_Invalid },
  745. /* 9D */ { 0, &Ia_Invalid },
  746. /* 9E */ { 0, &Ia_Invalid },
  747. /* 9F */ { 0, &Ia_Invalid },
  748. /* A0 */ { 0, &Ia_Invalid },
  749. /* A1 */ { 0, &Ia_Invalid },
  750. /* A2 */ { 0, &Ia_Invalid },
  751. /* A3 */ { 0, &Ia_Invalid },
  752. /* A4 */ { 0, &Ia_Invalid },
  753. /* A5 */ { 0, &Ia_Invalid },
  754. /* A6 */ { 0, &Ia_Invalid },
  755. /* A7 */ { 0, &Ia_Invalid },
  756. /* A8 */ { 0, &Ia_Invalid },
  757. /* A9 */ { 0, &Ia_Invalid },
  758. /* AA */ { 0, &Ia_Invalid },
  759. /* AB */ { 0, &Ia_Invalid },
  760. /* AC */ { 0, &Ia_Invalid },
  761. /* AD */ { 0, &Ia_Invalid },
  762. /* AE */ { GRPMOD(AVXG15) },
  763. /* AF */ { 0, &Ia_Invalid },
  764. /* B0 */ { 0, &Ia_Invalid },
  765. /* B1 */ { 0, &Ia_Invalid },
  766. /* B2 */ { 0, &Ia_Invalid },
  767. /* B3 */ { 0, &Ia_Invalid },
  768. /* B4 */ { 0, &Ia_Invalid },
  769. /* B5 */ { 0, &Ia_Invalid },
  770. /* B6 */ { 0, &Ia_Invalid },
  771. /* B7 */ { 0, &Ia_Invalid },
  772. /* B8 */ { 0, &Ia_Invalid },
  773. /* B9 */ { 0, &Ia_Invalid },
  774. /* BA */ { 0, &Ia_Invalid },
  775. /* BB */ { 0, &Ia_Invalid },
  776. /* BC */ { 0, &Ia_Invalid },
  777. /* BD */ { 0, &Ia_Invalid },
  778. /* BE */ { 0, &Ia_Invalid },
  779. /* BF */ { 0, &Ia_Invalid },
  780. /* C0 */ { 0, &Ia_Invalid },
  781. /* C1 */ { 0, &Ia_Invalid },
  782. /* C2 */ { GRPAVX(0fc2) },
  783. /* C3 */ { 0, &Ia_Invalid },
  784. /* C4 */ { GRPSSE66(Ia_vpinsrw_Vdq_Hdq_Ew_Ib) },
  785. /* C5 */ { GRPSSE66(Ia_vpextrw_Gd_Udq_Ib) },
  786. /* C6 */ { GRPAVX2(0fc6) },
  787. /* C7 */ { 0, &Ia_Invalid },
  788. /* C8 */ { 0, &Ia_Invalid },
  789. /* C9 */ { 0, &Ia_Invalid },
  790. /* CA */ { 0, &Ia_Invalid },
  791. /* CB */ { 0, &Ia_Invalid },
  792. /* CC */ { 0, &Ia_Invalid },
  793. /* CD */ { 0, &Ia_Invalid },
  794. /* CE */ { 0, &Ia_Invalid },
  795. /* CF */ { 0, &Ia_Invalid },
  796. /* D0 */ { GRPAVX(0fd0) },
  797. /* D1 */ { GRPSSE66(Ia_vpsrlw_Vdq_Hdq_Wdq) },
  798. /* D2 */ { GRPSSE66(Ia_vpsrld_Vdq_Hdq_Wdq) },
  799. /* D3 */ { GRPSSE66(Ia_vpsrlq_Vdq_Hdq_Wdq) },
  800. /* D4 */ { GRPSSE66(Ia_vpaddq_Vdq_Hdq_Wdq) },
  801. /* D5 */ { GRPSSE66(Ia_vpmullw_Vdq_Hdq_Wdq) },
  802. /* D6 */ { GRPSSE66(Ia_vmovq_Wq_Vq) },
  803. /* D7 */ { GRPSSE66(Ia_vpmovmskb_Gd_Udq) },
  804. /* D8 */ { GRPSSE66(Ia_vpsubusb_Vdq_Hdq_Wdq) },
  805. /* D9 */ { GRPSSE66(Ia_vpsubusw_Vdq_Hdq_Wdq) },
  806. /* DA */ { GRPSSE66(Ia_vpminub_Vdq_Hdq_Wdq) },
  807. /* DB */ { GRPSSE66(Ia_vpand_Vdq_Hdq_Wdq) },
  808. /* DC */ { GRPSSE66(Ia_vpaddusb_Vdq_Hdq_Wdq) },
  809. /* DD */ { GRPSSE66(Ia_vpaddusw_Vdq_Hdq_Wdq) },
  810. /* DE */ { GRPSSE66(Ia_vpmaxub_Vdq_Hdq_Wdq) },
  811. /* DF */ { GRPSSE66(Ia_vpandn_Vdq_Hdq_Wdq) },
  812. /* E0 */ { GRPSSE66(Ia_vpavgb_Vdq_Hdq_Wdq) },
  813. /* E1 */ { GRPSSE66(Ia_vpsraw_Vdq_Hdq_Wdq) },
  814. /* E2 */ { GRPSSE66(Ia_vpsrad_Vdq_Hdq_Wdq) },
  815. /* E3 */ { GRPSSE66(Ia_vpavgw_Vdq_Hdq_Wdq) },
  816. /* E4 */ { GRPSSE66(Ia_vpmulhuw_Vdq_Hdq_Wdq) },
  817. /* E5 */ { GRPSSE66(Ia_vpmulhw_Vdq_Hdq_Wdq) },
  818. /* E6 */ { GRPAVX(0fe6) },
  819. /* E7 */ { GRPSSE66(Ia_vmovntdq_Mdq_Vdq) },
  820. /* E8 */ { GRPSSE66(Ia_vpsubsb_Vdq_Hdq_Wdq) },
  821. /* E9 */ { GRPSSE66(Ia_vpsubsw_Vdq_Hdq_Wdq) },
  822. /* EA */ { GRPSSE66(Ia_vpminsw_Vdq_Hdq_Wdq) },
  823. /* EB */ { GRPSSE66(Ia_vpor_Vdq_Hdq_Wdq) },
  824. /* EC */ { GRPSSE66(Ia_vpaddsb_Vdq_Hdq_Wdq) },
  825. /* ED */ { GRPSSE66(Ia_vpaddsw_Vdq_Hdq_Wdq) },
  826. /* EE */ { GRPSSE66(Ia_vpmaxsw_Vdq_Hdq_Wdq) },
  827. /* EF */ { GRPSSE66(Ia_vpxor_Vdq_Hdq_Wdq) },
  828. /* F0 */ { GRPSSEF2(Ia_vlddqu_Vdq_Mdq) },
  829. /* F1 */ { GRPSSE66(Ia_vpsllw_Vdq_Hdq_Wdq) },
  830. /* F2 */ { GRPSSE66(Ia_vpslld_Vdq_Hdq_Wdq) },
  831. /* F3 */ { GRPSSE66(Ia_vpsllq_Vdq_Hdq_Wdq) },
  832. /* F4 */ { GRPSSE66(Ia_vpmuludq_Vdq_Hdq_Wdq) },
  833. /* F5 */ { GRPSSE66(Ia_vpmaddwd_Vdq_Hdq_Wdq) },
  834. /* F6 */ { GRPSSE66(Ia_vpsadbw_Vdq_Hdq_Wdq) },
  835. /* F7 */ { GRPSSE66(Ia_vmaskmovdqu_Vdq_Udq) },
  836. /* F8 */ { GRPSSE66(Ia_vpsubb_Vdq_Hdq_Wdq) },
  837. /* F9 */ { GRPSSE66(Ia_vpsubw_Vdq_Hdq_Wdq) },
  838. /* FA */ { GRPSSE66(Ia_vpsubd_Vdq_Hdq_Wdq) },
  839. /* FB */ { GRPSSE66(Ia_vpsubq_Vdq_Hdq_Wdq) },
  840. /* FC */ { GRPSSE66(Ia_vpaddb_Vdq_Hdq_Wdq) },
  841. /* FD */ { GRPSSE66(Ia_vpaddw_Vdq_Hdq_Wdq) },
  842. /* FE */ { GRPSSE66(Ia_vpaddd_Vdq_Hdq_Wdq) },
  843. /* FF */ { 0, &Ia_Invalid },
  844. // 256 entries for VEX-encoded 0x0F 0x38 opcodes
  845. /* 00 */ { GRPSSE66(Ia_vpshufb_Vdq_Hdq_Wdq) },
  846. /* 01 */ { GRPSSE66(Ia_vphaddw_Vdq_Hdq_Wdq) },
  847. /* 02 */ { GRPSSE66(Ia_vphaddd_Vdq_Hdq_Wdq) },
  848. /* 03 */ { GRPSSE66(Ia_vphaddsw_Vdq_Hdq_Wdq) },
  849. /* 04 */ { GRPSSE66(Ia_vpmaddubsw_Vdq_Hdq_Wdq) },
  850. /* 05 */ { GRPSSE66(Ia_vphsubw_Vdq_Hdq_Wdq) },
  851. /* 06 */ { GRPSSE66(Ia_vphsubd_Vdq_Hdq_Wdq) },
  852. /* 07 */ { GRPSSE66(Ia_vphsubsw_Vdq_Hdq_Wdq) },
  853. /* 08 */ { GRPSSE66(Ia_vpsignb_Vdq_Hdq_Wdq) },
  854. /* 09 */ { GRPSSE66(Ia_vpsignw_Vdq_Hdq_Wdq) },
  855. /* 0A */ { GRPSSE66(Ia_vpsignd_Vdq_Hdq_Wdq) },
  856. /* 0B */ { GRPSSE66(Ia_vpmulhrsw_Vdq_Hdq_Wdq) },
  857. /* 0C */ { GRPSSE66(Ia_vpermilps_Vps_Hps_Wps) },
  858. /* 0D */ { GRPSSE66(Ia_vpermilpd_Vpd_Hpd_Wpd) },
  859. /* 0E */ { GRPSSE66(Ia_vtestps_Vps_Wps) },
  860. /* 0F */ { GRPSSE66(Ia_vtestpd_Vpd_Wpd) },
  861. /* 10 */ { 0, &Ia_Invalid },
  862. /* 11 */ { 0, &Ia_Invalid },
  863. /* 12 */ { 0, &Ia_Invalid },
  864. /* 13 */ { GRPSSE66(Ia_vcvtph2ps_Vps_Wq) },
  865. /* 14 */ { 0, &Ia_Invalid },
  866. /* 15 */ { 0, &Ia_Invalid },
  867. /* 16 */ { GRPSSE66(Ia_vpermps_Vps_Hps_Wps) },
  868. /* 17 */ { GRPSSE66(Ia_vptest_Vdq_Wdq) },
  869. /* 18 */ { GRPSSE66(Ia_vbroadcastss_Vps_Wss) },
  870. /* 19 */ { GRPSSE66(Ia_vbroadcastsd_Vpd_Wsd) },
  871. /* 1A */ { GRPSSE66(Ia_vbroadcastf128_Vdq_Mdq) },
  872. /* 1B */ { 0, &Ia_Invalid },
  873. /* 1C */ { GRPSSE66(Ia_vpabsb_Vdq_Hdq_Wdq) },
  874. /* 1D */ { GRPSSE66(Ia_vpabsw_Vdq_Hdq_Wdq) },
  875. /* 1E */ { GRPSSE66(Ia_vpabsd_Vdq_Hdq_Wdq) },
  876. /* 1F */ { 0, &Ia_Invalid },
  877. /* 20 */ { GRPSSE66(Ia_vpmovsxbw_Vdq_Wq) },
  878. /* 21 */ { GRPSSE66(Ia_vpmovsxbd_Vdq_Wd) },
  879. /* 22 */ { GRPSSE66(Ia_vpmovsxbq_Vdq_Ww) },
  880. /* 23 */ { GRPSSE66(Ia_vpmovsxwd_Vdq_Wq) },
  881. /* 24 */ { GRPSSE66(Ia_vpmovsxwq_Vdq_Wd) },
  882. /* 25 */ { GRPSSE66(Ia_vpmovsxdq_Vdq_Wq) },
  883. /* 26 */ { 0, &Ia_Invalid },
  884. /* 27 */ { 0, &Ia_Invalid },
  885. /* 28 */ { GRPSSE66(Ia_vpmuldq_Vdq_Hdq_Wdq) },
  886. /* 29 */ { GRPSSE66(Ia_vpcmpeqq_Vdq_Hdq_Wdq) },
  887. /* 2A */ { GRPSSE66(Ia_vmovntdqa_Vdq_Mdq) },
  888. /* 2B */ { GRPSSE66(Ia_vpackusdw_Vdq_Hdq_Wdq) },
  889. /* 2C */ { GRPSSE66(Ia_vmaskmovps_Vps_Hps_Mps) },
  890. /* 2D */ { GRPSSE66(Ia_vmaskmovpd_Vpd_Hpd_Mpd) },
  891. /* 2E */ { GRPSSE66(Ia_vmaskmovps_Mps_Hps_Vps) },
  892. /* 2F */ { GRPSSE66(Ia_vmaskmovpd_Mpd_Hpd_Vpd) },
  893. /* 30 */ { GRPSSE66(Ia_vpmovzxbw_Vdq_Wq) },
  894. /* 31 */ { GRPSSE66(Ia_vpmovzxbd_Vdq_Wd) },
  895. /* 32 */ { GRPSSE66(Ia_vpmovzxbq_Vdq_Ww) },
  896. /* 33 */ { GRPSSE66(Ia_vpmovzxwd_Vdq_Wq) },
  897. /* 34 */ { GRPSSE66(Ia_vpmovzxwq_Vdq_Wd) },
  898. /* 35 */ { GRPSSE66(Ia_vpmovzxdq_Vdq_Wq) },
  899. /* 36 */ { GRPSSE66(Ia_vpermd_Vdq_Hdq_Wdq) },
  900. /* 37 */ { GRPSSE66(Ia_vpcmpgtq_Vdq_Hdq_Wdq) },
  901. /* 38 */ { GRPSSE66(Ia_vpminsb_Vdq_Hdq_Wdq) },
  902. /* 39 */ { GRPSSE66(Ia_vpminsd_Vdq_Hdq_Wdq) },
  903. /* 3A */ { GRPSSE66(Ia_vpminuw_Vdq_Hdq_Wdq) },
  904. /* 3B */ { GRPSSE66(Ia_vpminud_Vdq_Hdq_Wdq) },
  905. /* 3C */ { GRPSSE66(Ia_vpmaxsb_Vdq_Hdq_Wdq) },
  906. /* 3D */ { GRPSSE66(Ia_vpmaxsd_Vdq_Hdq_Wdq) },
  907. /* 3E */ { GRPSSE66(Ia_vpmaxuw_Vdq_Hdq_Wdq) },
  908. /* 3F */ { GRPSSE66(Ia_vpmaxud_Vdq_Hdq_Wdq) },
  909. /* 40 */ { GRPSSE66(Ia_vpmulld_Vdq_Hdq_Wdq) },
  910. /* 41 */ { GRPSSE66(Ia_vphminposuw_Vdq_Wdq) },
  911. /* 42 */ { 0, &Ia_Invalid },
  912. /* 43 */ { 0, &Ia_Invalid },
  913. /* 44 */ { 0, &Ia_Invalid },
  914. /* 45 */ { GRPVEXW(0f3845) },
  915. /* 46 */ { GRPSSE66(Ia_vpsravd_Vdq_Hdq_Wdq) },
  916. /* 47 */ { GRPVEXW(0f3847) },
  917. /* 48 */ { 0, &Ia_Invalid },
  918. /* 49 */ { 0, &Ia_Invalid },
  919. /* 4A */ { 0, &Ia_Invalid },
  920. /* 4B */ { 0, &Ia_Invalid },
  921. /* 4C */ { 0, &Ia_Invalid },
  922. /* 4D */ { 0, &Ia_Invalid },
  923. /* 4E */ { 0, &Ia_Invalid },
  924. /* 4F */ { 0, &Ia_Invalid },
  925. /* 50 */ { 0, &Ia_Invalid },
  926. /* 51 */ { 0, &Ia_Invalid },
  927. /* 52 */ { 0, &Ia_Invalid },
  928. /* 53 */ { 0, &Ia_Invalid },
  929. /* 54 */ { 0, &Ia_Invalid },
  930. /* 55 */ { 0, &Ia_Invalid },
  931. /* 56 */ { 0, &Ia_Invalid },
  932. /* 57 */ { 0, &Ia_Invalid },
  933. /* 58 */ { GRPSSE66(Ia_vpbroadcastd_Vdq_Wd) },
  934. /* 59 */ { GRPSSE66(Ia_vpbroadcastq_Vdq_Wq) },
  935. /* 5A */ { GRPSSE66(Ia_vbroadcasti128_Vdq_Mdq) },
  936. /* 5B */ { 0, &Ia_Invalid },
  937. /* 5C */ { 0, &Ia_Invalid },
  938. /* 5D */ { 0, &Ia_Invalid },
  939. /* 5E */ { 0, &Ia_Invalid },
  940. /* 5F */ { 0, &Ia_Invalid },
  941. /* 60 */ { 0, &Ia_Invalid },
  942. /* 61 */ { 0, &Ia_Invalid },
  943. /* 62 */ { 0, &Ia_Invalid },
  944. /* 63 */ { 0, &Ia_Invalid },
  945. /* 64 */ { 0, &Ia_Invalid },
  946. /* 65 */ { 0, &Ia_Invalid },
  947. /* 66 */ { 0, &Ia_Invalid },
  948. /* 67 */ { 0, &Ia_Invalid },
  949. /* 68 */ { 0, &Ia_Invalid },
  950. /* 69 */ { 0, &Ia_Invalid },
  951. /* 6A */ { 0, &Ia_Invalid },
  952. /* 6B */ { 0, &Ia_Invalid },
  953. /* 6C */ { 0, &Ia_Invalid },
  954. /* 6D */ { 0, &Ia_Invalid },
  955. /* 6E */ { 0, &Ia_Invalid },
  956. /* 6F */ { 0, &Ia_Invalid },
  957. /* 70 */ { 0, &Ia_Invalid },
  958. /* 71 */ { 0, &Ia_Invalid },
  959. /* 72 */ { 0, &Ia_Invalid },
  960. /* 73 */ { 0, &Ia_Invalid },
  961. /* 74 */ { 0, &Ia_Invalid },
  962. /* 75 */ { 0, &Ia_Invalid },
  963. /* 76 */ { 0, &Ia_Invalid },
  964. /* 77 */ { 0, &Ia_Invalid },
  965. /* 78 */ { GRPSSE66(Ia_vpbroadcastb_Vdq_Wb) },
  966. /* 79 */ { GRPSSE66(Ia_vpbroadcastw_Vdq_Ww) },
  967. /* 7A */ { 0, &Ia_Invalid },
  968. /* 7B */ { 0, &Ia_Invalid },
  969. /* 7C */ { 0, &Ia_Invalid },
  970. /* 7D */ { 0, &Ia_Invalid },
  971. /* 7E */ { 0, &Ia_Invalid },
  972. /* 7F */ { 0, &Ia_Invalid },
  973. /* 80 */ { 0, &Ia_Invalid },
  974. /* 81 */ { 0, &Ia_Invalid },
  975. /* 82 */ { 0, &Ia_Invalid },
  976. /* 83 */ { 0, &Ia_Invalid },
  977. /* 84 */ { 0, &Ia_Invalid },
  978. /* 85 */ { 0, &Ia_Invalid },
  979. /* 86 */ { 0, &Ia_Invalid },
  980. /* 87 */ { 0, &Ia_Invalid },
  981. /* 88 */ { 0, &Ia_Invalid },
  982. /* 89 */ { 0, &Ia_Invalid },
  983. /* 8A */ { 0, &Ia_Invalid },
  984. /* 8B */ { 0, &Ia_Invalid },
  985. /* 8C */ { GRPVEXW(0f388c) },
  986. /* 8D */ { 0, &Ia_Invalid },
  987. /* 8E */ { GRPVEXW(0f388e) },
  988. /* 8F */ { 0, &Ia_Invalid },
  989. /* 90 */ { GRPVEXW(0f3890) },
  990. /* 91 */ { GRPVEXW(0f3891) },
  991. /* 92 */ { GRPVEXW(0f3892) },
  992. /* 93 */ { GRPVEXW(0f3893) },
  993. /* 94 */ { 0, &Ia_Invalid },
  994. /* 95 */ { 0, &Ia_Invalid },
  995. /* 96 */ { GRPVEXW(0f3896) },
  996. /* 97 */ { GRPVEXW(0f3897) },
  997. /* 98 */ { GRPVEXW(0f3898) },
  998. /* 99 */ { GRPVEXW(0f3899) },
  999. /* 9A */ { GRPVEXW(0f389a) },
  1000. /* 9B */ { GRPVEXW(0f389b) },
  1001. /* 9C */ { GRPVEXW(0f389c) },
  1002. /* 9D */ { GRPVEXW(0f389d) },
  1003. /* 9E */ { GRPVEXW(0f389e) },
  1004. /* 9F */ { GRPVEXW(0f389f) },
  1005. /* A0 */ { 0, &Ia_Invalid },
  1006. /* A1 */ { 0, &Ia_Invalid },
  1007. /* A2 */ { 0, &Ia_Invalid },
  1008. /* A3 */ { 0, &Ia_Invalid },
  1009. /* A4 */ { 0, &Ia_Invalid },
  1010. /* A5 */ { 0, &Ia_Invalid },
  1011. /* A6 */ { GRPVEXW(0f38a6) },
  1012. /* A7 */ { GRPVEXW(0f38a7) },
  1013. /* A8 */ { GRPVEXW(0f38a8) },
  1014. /* A9 */ { GRPVEXW(0f38a9) },
  1015. /* AA */ { GRPVEXW(0f38aa) },
  1016. /* AB */ { GRPVEXW(0f38ab) },
  1017. /* AC */ { GRPVEXW(0f38ac) },
  1018. /* AD */ { GRPVEXW(0f38ad) },
  1019. /* AE */ { GRPVEXW(0f38ae) },
  1020. /* AF */ { GRPVEXW(0f38af) },
  1021. /* B0 */ { 0, &Ia_Invalid },
  1022. /* B1 */ { 0, &Ia_Invalid },
  1023. /* B2 */ { 0, &Ia_Invalid },
  1024. /* B3 */ { 0, &Ia_Invalid },
  1025. /* B4 */ { 0, &Ia_Invalid },
  1026. /* B5 */ { 0, &Ia_Invalid },
  1027. /* B6 */ { GRPVEXW(0f38b6) },
  1028. /* B7 */ { GRPVEXW(0f38b7) },
  1029. /* B8 */ { GRPVEXW(0f38b8) },
  1030. /* B9 */ { GRPVEXW(0f38b9) },
  1031. /* BA */ { GRPVEXW(0f38ba) },
  1032. /* BB */ { GRPVEXW(0f38bb) },
  1033. /* BC */ { GRPVEXW(0f38bc) },
  1034. /* BD */ { GRPVEXW(0f38bd) },
  1035. /* BE */ { GRPVEXW(0f38be) },
  1036. /* BF */ { GRPVEXW(0f38bf) },
  1037. /* C0 */ { 0, &Ia_Invalid },
  1038. /* C1 */ { 0, &Ia_Invalid },
  1039. /* C2 */ { 0, &Ia_Invalid },
  1040. /* C3 */ { 0, &Ia_Invalid },
  1041. /* C4 */ { 0, &Ia_Invalid },
  1042. /* C5 */ { 0, &Ia_Invalid },
  1043. /* C6 */ { 0, &Ia_Invalid },
  1044. /* C7 */ { 0, &Ia_Invalid },
  1045. /* C8 */ { 0, &Ia_Invalid },
  1046. /* C9 */ { 0, &Ia_Invalid },
  1047. /* CA */ { 0, &Ia_Invalid },
  1048. /* CB */ { 0, &Ia_Invalid },
  1049. /* CC */ { 0, &Ia_Invalid },
  1050. /* CD */ { 0, &Ia_Invalid },
  1051. /* CE */ { 0, &Ia_Invalid },
  1052. /* CF */ { 0, &Ia_Invalid },
  1053. /* D0 */ { 0, &Ia_Invalid },
  1054. /* D1 */ { 0, &Ia_Invalid },
  1055. /* D2 */ { 0, &Ia_Invalid },
  1056. /* D3 */ { 0, &Ia_Invalid },
  1057. /* D4 */ { 0, &Ia_Invalid },
  1058. /* D5 */ { 0, &Ia_Invalid },
  1059. /* D6 */ { 0, &Ia_Invalid },
  1060. /* D7 */ { 0, &Ia_Invalid },
  1061. /* D8 */ { 0, &Ia_Invalid },
  1062. /* D9 */ { 0, &Ia_Invalid },
  1063. /* DA */ { 0, &Ia_Invalid },
  1064. /* DB */ { GRPSSE66(Ia_vaesimc_Vdq_Wdq) },
  1065. /* DC */ { GRPSSE66(Ia_vaesenc_Vdq_Hdq_Wdq) },
  1066. /* DD */ { GRPSSE66(Ia_vaesenclast_Vdq_Hdq_Wdq) },
  1067. /* DE */ { GRPSSE66(Ia_vaesdec_Vdq_Hdq_Wdq) },
  1068. /* DF */ { GRPSSE66(Ia_vaesdeclast_Vdq_Hdq_Wdq) },
  1069. /* E0 */ { 0, &Ia_Invalid },
  1070. /* E1 */ { 0, &Ia_Invalid },
  1071. /* E2 */ { 0, &Ia_Invalid },
  1072. /* E3 */ { 0, &Ia_Invalid },
  1073. /* E4 */ { 0, &Ia_Invalid },
  1074. /* E5 */ { 0, &Ia_Invalid },
  1075. /* E6 */ { 0, &Ia_Invalid },
  1076. /* E7 */ { 0, &Ia_Invalid },
  1077. /* E8 */ { 0, &Ia_Invalid },
  1078. /* E9 */ { 0, &Ia_Invalid },
  1079. /* EA */ { 0, &Ia_Invalid },
  1080. /* EB */ { 0, &Ia_Invalid },
  1081. /* EC */ { 0, &Ia_Invalid },
  1082. /* ED */ { 0, &Ia_Invalid },
  1083. /* EE */ { 0, &Ia_Invalid },
  1084. /* EF */ { 0, &Ia_Invalid },
  1085. /* F0 */ { 0, &Ia_Invalid },
  1086. /* F1 */ { 0, &Ia_Invalid },
  1087. /* F2 */ { 0, &Ia_andn_Gy_By_Ey },
  1088. /* F3 */ { GRPN(AVXG17) },
  1089. /* F4 */ { 0, &Ia_Invalid },
  1090. /* F5 */ { GRPAVX(0f38f5) },
  1091. /* F6 */ { GRPSSEF2(Ia_mulx_By_Gy_Ey) },
  1092. /* F7 */ { GRPAVX(0f38f7) },
  1093. /* F8 */ { 0, &Ia_Invalid },
  1094. /* F9 */ { 0, &Ia_Invalid },
  1095. /* FA */ { 0, &Ia_Invalid },
  1096. /* FB */ { 0, &Ia_Invalid },
  1097. /* FC */ { 0, &Ia_Invalid },
  1098. /* FD */ { 0, &Ia_Invalid },
  1099. /* FE */ { 0, &Ia_Invalid },
  1100. /* FF */ { 0, &Ia_Invalid },
  1101. // 256 entries for VEX-encoded 0x0F 0x3A opcodes
  1102. /* 00 */ { GRPVEXW(0f3a00) },
  1103. /* 01 */ { GRPVEXW(0f3a01) },
  1104. /* 02 */ { GRPSSE66(Ia_vpblendd_Vdq_Hdq_Wdq_Ib) },
  1105. /* 03 */ { 0, &Ia_Invalid },
  1106. /* 04 */ { GRPSSE66(Ia_vpermilps_Vps_Wps_Ib) },
  1107. /* 05 */ { GRPSSE66(Ia_vpermilpd_Vpd_Wpd_Ib) },
  1108. /* 06 */ { GRPSSE66(Ia_vperm2f128_Vdq_Hdq_Wdq_Ib) },
  1109. /* 07 */ { 0, &Ia_Invalid },
  1110. /* 08 */ { GRPSSE66(Ia_vroundps_Vps_Wps_Ib) },
  1111. /* 09 */ { GRPSSE66(Ia_vroundpd_Vpd_Wpd_Ib) },
  1112. /* 0A */ { GRPSSE66(Ia_vroundss_Vss_Hps_Wss_Ib) },
  1113. /* 0B */ { GRPSSE66(Ia_vroundsd_Vsd_Hpd_Wsd_Ib) },
  1114. /* 0C */ { GRPSSE66(Ia_vblendps_Vps_Hps_Wps_Ib) },
  1115. /* 0D */ { GRPSSE66(Ia_vblendpd_Vpd_Hpd_Wpd_Ib) },
  1116. /* 0E */ { GRPSSE66(Ia_vpblendw_Vdq_Hdq_Wdq_Ib) },
  1117. /* 0F */ { GRPSSE66(Ia_vpalignr_Vdq_Hdq_Wdq_Ib) },
  1118. /* 10 */ { 0, &Ia_Invalid },
  1119. /* 11 */ { 0, &Ia_Invalid },
  1120. /* 12 */ { 0, &Ia_Invalid },
  1121. /* 13 */ { 0, &Ia_Invalid },
  1122. /* 14 */ { GRPSSE66(Ia_vpextrb_Ebd_Vdq_Ib) },
  1123. /* 15 */ { GRPSSE66(Ia_vpextrw_Ewd_Vdq_Ib) },
  1124. /* 16 */ { GRPVEXW(0f3a16) },
  1125. /* 17 */ { GRPSSE66(Ia_vextractps_Ed_Vdq_Ib) },
  1126. /* 18 */ { GRPSSE66(Ia_vinsertf128_Vdq_Hdq_Wdq_Ib) },
  1127. /* 19 */ { GRPSSE66(Ia_vextractf128_Wdq_Vdq_Ib) },
  1128. /* 1A */ { 0, &Ia_Invalid },
  1129. /* 1B */ { 0, &Ia_Invalid },
  1130. /* 1C */ { 0, &Ia_Invalid },
  1131. /* 1D */ { GRPSSE66(Ia_vcvtps2ph_Wq_Vps_Ib) },
  1132. /* 1E */ { 0, &Ia_Invalid },
  1133. /* 1F */ { 0, &Ia_Invalid },
  1134. /* 20 */ { GRPSSE66(Ia_vpinsrb_Vdq_Hdq_Ew_Ib) },
  1135. /* 21 */ { GRPSSE66(Ia_vinsertps_Vps_Hps_Wss_Ib) },
  1136. /* 22 */ { GRPVEXW(0f3a22) },
  1137. /* 23 */ { 0, &Ia_Invalid },
  1138. /* 24 */ { 0, &Ia_Invalid },
  1139. /* 25 */ { 0, &Ia_Invalid },
  1140. /* 26 */ { 0, &Ia_Invalid },
  1141. /* 27 */ { 0, &Ia_Invalid },
  1142. /* 28 */ { 0, &Ia_Invalid },
  1143. /* 29 */ { 0, &Ia_Invalid },
  1144. /* 2A */ { 0, &Ia_Invalid },
  1145. /* 2B */ { 0, &Ia_Invalid },
  1146. /* 2C */ { 0, &Ia_Invalid },
  1147. /* 2D */ { 0, &Ia_Invalid },
  1148. /* 2E */ { 0, &Ia_Invalid },
  1149. /* 2F */ { 0, &Ia_Invalid },
  1150. /* 30 */ { 0, &Ia_Invalid },
  1151. /* 31 */ { 0, &Ia_Invalid },
  1152. /* 32 */ { 0, &Ia_Invalid },
  1153. /* 33 */ { 0, &Ia_Invalid },
  1154. /* 34 */ { 0, &Ia_Invalid },
  1155. /* 35 */ { 0, &Ia_Invalid },
  1156. /* 36 */ { 0, &Ia_Invalid },
  1157. /* 37 */ { 0, &Ia_Invalid },
  1158. /* 38 */ { GRPSSE66(Ia_vinserti128_Vdq_Hdq_Wdq_Ib) },
  1159. /* 39 */ { GRPSSE66(Ia_vextracti128_Wdq_Vdq_Ib) },
  1160. /* 3A */ { 0, &Ia_Invalid },
  1161. /* 3B */ { 0, &Ia_Invalid },
  1162. /* 3C */ { 0, &Ia_Invalid },
  1163. /* 3D */ { 0, &Ia_Invalid },
  1164. /* 3E */ { 0, &Ia_Invalid },
  1165. /* 3F */ { 0, &Ia_Invalid },
  1166. /* 40 */ { GRPSSE66(Ia_vdpps_Vps_Hps_Wps_Ib) },
  1167. /* 41 */ { GRPSSE66(Ia_vdppd_Vpd_Hpd_Wpd_Ib) },
  1168. /* 42 */ { GRPSSE66(Ia_vmpsadbw_Vdq_Hdq_Wdq_Ib) },
  1169. /* 43 */ { 0, &Ia_Invalid },
  1170. /* 44 */ { GRPSSE66(Ia_vpclmulqdq_Vdq_Hdq_Wdq_Ib) },
  1171. /* 45 */ { 0, &Ia_Invalid },
  1172. /* 46 */ { GRPSSE66(Ia_vperm2i128_Vdq_Hdq_Wdq_Ib) },
  1173. /* 47 */ { 0, &Ia_Invalid },
  1174. /* 48 */ { 0, &Ia_Invalid },
  1175. /* 49 */ { 0, &Ia_Invalid },
  1176. /* 4A */ { GRPSSE66(Ia_vblendvps_Vps_Hps_Wps_Ib) },
  1177. /* 4B */ { GRPSSE66(Ia_vblendvpd_Vpd_Hpd_Wpd_Ib) },
  1178. /* 4C */ { GRPSSE66(Ia_vpblendvb_Vdq_Hdq_Wdq_Ib) },
  1179. /* 4D */ { 0, &Ia_Invalid },
  1180. /* 4E */ { 0, &Ia_Invalid },
  1181. /* 4F */ { 0, &Ia_Invalid },
  1182. /* 50 */ { 0, &Ia_Invalid },
  1183. /* 51 */ { 0, &Ia_Invalid },
  1184. /* 52 */ { 0, &Ia_Invalid },
  1185. /* 53 */ { 0, &Ia_Invalid },
  1186. /* 54 */ { 0, &Ia_Invalid },
  1187. /* 55 */ { 0, &Ia_Invalid },
  1188. /* 56 */ { 0, &Ia_Invalid },
  1189. /* 57 */ { 0, &Ia_Invalid },
  1190. /* 58 */ { 0, &Ia_Invalid },
  1191. /* 59 */ { 0, &Ia_Invalid },
  1192. /* 5A */ { 0, &Ia_Invalid },
  1193. /* 5B */ { 0, &Ia_Invalid },
  1194. /* 5C */ { GRPVEXW(0f3a5c) },
  1195. /* 5D */ { GRPVEXW(0f3a5d) },
  1196. /* 5E */ { GRPVEXW(0f3a5e) },
  1197. /* 5F */ { GRPVEXW(0f3a5f) },
  1198. /* 60 */ { GRPSSE66(Ia_vpcmpestrm_Vdq_Wdq_Ib) },
  1199. /* 61 */ { GRPSSE66(Ia_vpcmpestri_Vdq_Wdq_Ib) },
  1200. /* 62 */ { GRPSSE66(Ia_vpcmpistrm_Vdq_Wdq_Ib) },
  1201. /* 63 */ { GRPSSE66(Ia_vpcmpistri_Vdq_Wdq_Ib) },
  1202. /* 64 */ { 0, &Ia_Invalid },
  1203. /* 65 */ { 0, &Ia_Invalid },
  1204. /* 66 */ { 0, &Ia_Invalid },
  1205. /* 67 */ { 0, &Ia_Invalid },
  1206. /* 68 */ { GRPVEXW(0f3a68) },
  1207. /* 69 */ { GRPVEXW(0f3a69) },
  1208. /* 6A */ { GRPVEXW(0f3a6a) },
  1209. /* 6B */ { GRPVEXW(0f3a6b) },
  1210. /* 6C */ { GRPVEXW(0f3a6c) },
  1211. /* 6D */ { GRPVEXW(0f3a6d) },
  1212. /* 6E */ { GRPVEXW(0f3a6e) },
  1213. /* 6F */ { GRPVEXW(0f3a6f) },
  1214. /* 70 */ { 0, &Ia_Invalid },
  1215. /* 71 */ { 0, &Ia_Invalid },
  1216. /* 72 */ { 0, &Ia_Invalid },
  1217. /* 73 */ { 0, &Ia_Invalid },
  1218. /* 74 */ { 0, &Ia_Invalid },
  1219. /* 75 */ { 0, &Ia_Invalid },
  1220. /* 76 */ { 0, &Ia_Invalid },
  1221. /* 77 */ { 0, &Ia_Invalid },
  1222. /* 78 */ { GRPVEXW(0f3a78) },
  1223. /* 79 */ { GRPVEXW(0f3a79) },
  1224. /* 7A */ { GRPVEXW(0f3a7a) },
  1225. /* 7B */ { GRPVEXW(0f3a7b) },
  1226. /* 7C */ { GRPVEXW(0f3a7c) },
  1227. /* 7D */ { GRPVEXW(0f3a7d) },
  1228. /* 7E */ { GRPVEXW(0f3a7e) },
  1229. /* 7F */ { GRPVEXW(0f3a7f) },
  1230. /* 80 */ { 0, &Ia_Invalid },
  1231. /* 81 */ { 0, &Ia_Invalid },
  1232. /* 82 */ { 0, &Ia_Invalid },
  1233. /* 83 */ { 0, &Ia_Invalid },
  1234. /* 84 */ { 0, &Ia_Invalid },
  1235. /* 85 */ { 0, &Ia_Invalid },
  1236. /* 86 */ { 0, &Ia_Invalid },
  1237. /* 87 */ { 0, &Ia_Invalid },
  1238. /* 88 */ { 0, &Ia_Invalid },
  1239. /* 89 */ { 0, &Ia_Invalid },
  1240. /* 8A */ { 0, &Ia_Invalid },
  1241. /* 8B */ { 0, &Ia_Invalid },
  1242. /* 8C */ { 0, &Ia_Invalid },
  1243. /* 8D */ { 0, &Ia_Invalid },
  1244. /* 8E */ { 0, &Ia_Invalid },
  1245. /* 8F */ { 0, &Ia_Invalid },
  1246. /* 90 */ { 0, &Ia_Invalid },
  1247. /* 91 */ { 0, &Ia_Invalid },
  1248. /* 92 */ { 0, &Ia_Invalid },
  1249. /* 93 */ { 0, &Ia_Invalid },
  1250. /* 94 */ { 0, &Ia_Invalid },
  1251. /* 95 */ { 0, &Ia_Invalid },
  1252. /* 96 */ { 0, &Ia_Invalid },
  1253. /* 97 */ { 0, &Ia_Invalid },
  1254. /* 98 */ { 0, &Ia_Invalid },
  1255. /* 99 */ { 0, &Ia_Invalid },
  1256. /* 9A */ { 0, &Ia_Invalid },
  1257. /* 9B */ { 0, &Ia_Invalid },
  1258. /* 9C */ { 0, &Ia_Invalid },
  1259. /* 9D */ { 0, &Ia_Invalid },
  1260. /* 9E */ { 0, &Ia_Invalid },
  1261. /* 9F */ { 0, &Ia_Invalid },
  1262. /* A0 */ { 0, &Ia_Invalid },
  1263. /* A1 */ { 0, &Ia_Invalid },
  1264. /* A2 */ { 0, &Ia_Invalid },
  1265. /* A3 */ { 0, &Ia_Invalid },
  1266. /* A4 */ { 0, &Ia_Invalid },
  1267. /* A5 */ { 0, &Ia_Invalid },
  1268. /* A6 */ { 0, &Ia_Invalid },
  1269. /* A7 */ { 0, &Ia_Invalid },
  1270. /* A8 */ { 0, &Ia_Invalid },
  1271. /* A9 */ { 0, &Ia_Invalid },
  1272. /* AA */ { 0, &Ia_Invalid },
  1273. /* AB */ { 0, &Ia_Invalid },
  1274. /* AC */ { 0, &Ia_Invalid },
  1275. /* AD */ { 0, &Ia_Invalid },
  1276. /* AE */ { 0, &Ia_Invalid },
  1277. /* AF */ { 0, &Ia_Invalid },
  1278. /* B0 */ { 0, &Ia_Invalid },
  1279. /* B1 */ { 0, &Ia_Invalid },
  1280. /* B2 */ { 0, &Ia_Invalid },
  1281. /* B3 */ { 0, &Ia_Invalid },
  1282. /* B4 */ { 0, &Ia_Invalid },
  1283. /* B5 */ { 0, &Ia_Invalid },
  1284. /* B6 */ { 0, &Ia_Invalid },
  1285. /* B7 */ { 0, &Ia_Invalid },
  1286. /* B8 */ { 0, &Ia_Invalid },
  1287. /* B9 */ { 0, &Ia_Invalid },
  1288. /* BA */ { 0, &Ia_Invalid },
  1289. /* BB */ { 0, &Ia_Invalid },
  1290. /* BC */ { 0, &Ia_Invalid },
  1291. /* BD */ { 0, &Ia_Invalid },
  1292. /* BE */ { 0, &Ia_Invalid },
  1293. /* BF */ { 0, &Ia_Invalid },
  1294. /* C0 */ { 0, &Ia_Invalid },
  1295. /* C1 */ { 0, &Ia_Invalid },
  1296. /* C2 */ { 0, &Ia_Invalid },
  1297. /* C3 */ { 0, &Ia_Invalid },
  1298. /* C4 */ { 0, &Ia_Invalid },
  1299. /* C5 */ { 0, &Ia_Invalid },
  1300. /* C6 */ { 0, &Ia_Invalid },
  1301. /* C7 */ { 0, &Ia_Invalid },
  1302. /* C8 */ { 0, &Ia_Invalid },
  1303. /* C9 */ { 0, &Ia_Invalid },
  1304. /* CA */ { 0, &Ia_Invalid },
  1305. /* CB */ { 0, &Ia_Invalid },
  1306. /* CC */ { 0, &Ia_Invalid },
  1307. /* CD */ { 0, &Ia_Invalid },
  1308. /* CE */ { 0, &Ia_Invalid },
  1309. /* CF */ { 0, &Ia_Invalid },
  1310. /* D0 */ { 0, &Ia_Invalid },
  1311. /* D1 */ { 0, &Ia_Invalid },
  1312. /* D2 */ { 0, &Ia_Invalid },
  1313. /* D3 */ { 0, &Ia_Invalid },
  1314. /* D4 */ { 0, &Ia_Invalid },
  1315. /* D5 */ { 0, &Ia_Invalid },
  1316. /* D6 */ { 0, &Ia_Invalid },
  1317. /* D7 */ { 0, &Ia_Invalid },
  1318. /* D8 */ { 0, &Ia_Invalid },
  1319. /* D9 */ { 0, &Ia_Invalid },
  1320. /* DA */ { 0, &Ia_Invalid },
  1321. /* DB */ { 0, &Ia_Invalid },
  1322. /* DC */ { 0, &Ia_Invalid },
  1323. /* DD */ { 0, &Ia_Invalid },
  1324. /* DE */ { 0, &Ia_Invalid },
  1325. /* DF */ { GRPSSE66(Ia_vaeskeygenassist_Vdq_Wdq_Ib) },
  1326. /* E0 */ { 0, &Ia_Invalid },
  1327. /* E1 */ { 0, &Ia_Invalid },
  1328. /* E2 */ { 0, &Ia_Invalid },
  1329. /* E3 */ { 0, &Ia_Invalid },
  1330. /* E4 */ { 0, &Ia_Invalid },
  1331. /* E5 */ { 0, &Ia_Invalid },
  1332. /* E6 */ { 0, &Ia_Invalid },
  1333. /* E7 */ { 0, &Ia_Invalid },
  1334. /* E8 */ { 0, &Ia_Invalid },
  1335. /* E9 */ { 0, &Ia_Invalid },
  1336. /* EA */ { 0, &Ia_Invalid },
  1337. /* EB */ { 0, &Ia_Invalid },
  1338. /* EC */ { 0, &Ia_Invalid },
  1339. /* ED */ { 0, &Ia_Invalid },
  1340. /* EE */ { 0, &Ia_Invalid },
  1341. /* EF */ { 0, &Ia_Invalid },
  1342. /* F0 */ { 0, &Ia_rorx_Gy_Ey_Ib },
  1343. /* F1 */ { 0, &Ia_Invalid },
  1344. /* F2 */ { 0, &Ia_Invalid },
  1345. /* F3 */ { 0, &Ia_Invalid },
  1346. /* F4 */ { 0, &Ia_Invalid },
  1347. /* F5 */ { 0, &Ia_Invalid },
  1348. /* F6 */ { 0, &Ia_Invalid },
  1349. /* F7 */ { 0, &Ia_Invalid },
  1350. /* F8 */ { 0, &Ia_Invalid },
  1351. /* F9 */ { 0, &Ia_Invalid },
  1352. /* FA */ { 0, &Ia_Invalid },
  1353. /* FB */ { 0, &Ia_Invalid },
  1354. /* FC */ { 0, &Ia_Invalid },
  1355. /* FD */ { 0, &Ia_Invalid },
  1356. /* FE */ { 0, &Ia_Invalid },
  1357. /* FF */ { 0, &Ia_Invalid }
  1358. };