VirtualBox

Changeset 95544 in vbox


Ignore:
Timestamp:
Jul 6, 2022 10:24:43 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
152168
Message:

DIS: Added all OP_Vxxx codes needed by current VEX tables. Aligned the columns in the VEX tables. bugref:9898 bugref:6251

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/disopcode.h

    r95541 r95544  
    789789/** @name AVX instructions
    790790 * @{ */
     791    /* Manual */
     792    OP_VSTMXCSR,
    791793    OP_VLDMXCSR,
    792     OP_VSTMXCSR,
    793     OP_VMOVUPS,
    794     OP_VMOVUPD,
    795     OP_VMOVSS,
    796     OP_VMOVSD,
     794    OP_VPACKUSDW,
     795
     796    /* Generated from tables: */
     797    OP_VADDPD,
     798    OP_VADDPS,
     799    OP_VADDSD,
     800    OP_VADDSS,
     801    OP_VADDSUBPD,
     802    OP_VADDSUBPS,
     803    OP_VAESDEC,
     804    OP_VAESDECLAST,
     805    OP_VAESENC,
     806    OP_VAESENCLAST,
     807    OP_VAESIMC,
     808    OP_VAESKEYGEN,
     809    OP_VANDNPD,
     810    OP_VANDNPS,
     811    OP_VANDPD,
     812    OP_VANDPS,
     813    OP_VBLENDPD,
     814    OP_VBLENDPS,
     815    OP_VBLENDVPD,
     816    OP_VBLENDVPS,
     817    OP_VBROADCASTF128,
     818    OP_VBROADCASTSD,
     819    OP_VBROADCASTSS,
     820    OP_VCMPSD,
     821    OP_VCMPSS,
     822    OP_VCOMISD,
     823    OP_VCOMISS,
     824    OP_VCVTDQ2PD,
     825    OP_VCVTDQ2PS,
     826    OP_VCVTPD2DQ,
     827    OP_VCVTPD2PS,
     828    OP_VCVTPH2PS,
     829    OP_VCVTPS2DQ,
     830    OP_VCVTPS2PD,
     831    OP_VCVTPS2PH,
     832    OP_VCVTSD2SS,
     833    OP_VCVTSI2SS,
     834    OP_VCVTSS2SD,
     835    OP_VCVTSS2SI,
     836    OP_VCVTTPD2DQ,
     837    OP_VCVTTPS2DQ,
     838    OP_VCVTTSS2SI,
     839    OP_VDIVPD,
     840    OP_VDIVPS,
     841    OP_VDIVSD,
     842    OP_VDIVSS,
     843    OP_VDPPD,
     844    OP_VDPPS,
     845    OP_VEXTRACTF128,
     846    OP_VEXTRACTI128,
     847    OP_VEXTRACTPS,
     848    OP_VFMADD132PS,
     849    OP_VFMADD132SS,
     850    OP_VFMADD213PS,
     851    OP_VFMADD213SS,
     852    OP_VFMADD231PS,
     853    OP_VFMADD231SS,
     854    OP_VFMADDSUB132PS,
     855    OP_VFMADDSUB213PS,
     856    OP_VFMADDSUB231PS,
     857    OP_VFMSUB132PS,
     858    OP_VFMSUB132SS,
     859    OP_VFMSUB213PS,
     860    OP_VFMSUB213SS,
     861    OP_VFMSUB231PS,
     862    OP_VFMSUB231SS,
     863    OP_VFMSUBADD132PS,
     864    OP_VFMSUBADD213PS,
     865    OP_VFMSUBADD231PS,
     866    OP_VFNMADD132PS,
     867    OP_VFNMADD132SS,
     868    OP_VFNMADD213PS,
     869    OP_VFNMADD213SS,
     870    OP_VFNMADD231PS,
     871    OP_VFNMADD231SS,
     872    OP_VFNMSUB132PS,
     873    OP_VFNMSUB132SS,
     874    OP_VFNMSUB213PS,
     875    OP_VFNMSUB213SS,
     876    OP_VFNMSUB231PS,
     877    OP_VFNMSUB231SS,
     878    OP_VGATHER,
     879    OP_VHADDPD,
     880    OP_VHADDPS,
     881    OP_VHSUBPD,
     882    OP_VHSUBPS,
     883    OP_VINSERTF128,
     884    OP_VINSERTI128,
     885    OP_VINSERTPS,
     886    OP_VLDDQU,
     887    OP_VMASKMOVDQU,
     888    OP_VMASKMOVPD,
     889    OP_VMASKMOVPS,
     890    OP_VMAXPD,
     891    OP_VMAXPS,
     892    OP_VMAXSD,
     893    OP_VMAXSS,
     894    OP_VMINPD,
     895    OP_VMINPS,
     896    OP_VMINSD,
     897    OP_VMINSS,
     898    OP_VMOVAPD,
     899    OP_VMOVAPS,
     900    OP_VMOVD,
     901    OP_VMOVDDUP,
     902    OP_VMOVDQA,
     903    OP_VMOVDQU,
     904    OP_VMOVHPD,
     905    OP_VMOVHPS,
     906    OP_VMOVLHPS = OP_VMOVHPS, /**< @todo OP_VMOVHPS */
     907    OP_VMOVLPD,
    797908    OP_VMOVLPS,
    798909    OP_VMOVHLPS = OP_VMOVLPS, /**< @todo OP_VMOVLPS */
    799     OP_VMOVLPD,
    800     OP_VMOVHPS,
    801     OP_VMOVLHPS = OP_VMOVHPS, /**< @todo OP_VMOVHPS */
    802     OP_VMOVHPD,
    803     OP_VMOVSLDUP,
    804     OP_VMOVSHDUP,
    805     OP_VMOVDDUP,
    806     OP_VMOVAPS,
    807     OP_VMOVAPD,
    808     OP_VMOVNTPS,
    809     OP_VMOVNTPD,
    810     OP_VMOVD,
    811     OP_VMOVQ,
    812     OP_VMOVDQA,
    813     OP_VMOVDQU,
     910    OP_VMOVMSKPD,
     911    OP_VMOVMSKPS,
    814912    OP_VMOVNTDQ,
    815913    OP_VMOVNTDQA,
     914    OP_VMOVNTPD,
     915    OP_VMOVNTPS,
     916    OP_VMOVQ,
     917    OP_VMOVSD,
     918    OP_VMOVSHDUP,
     919    OP_VMOVSLDUP,
     920    OP_VMOVSS,
     921    OP_VMOVUPD,
     922    OP_VMOVUPS,
     923    OP_VMPSADBW,
     924    OP_VMULPD,
     925    OP_VMULPS,
     926    OP_VMULSD,
     927    OP_VMULSS,
     928    OP_VORPD,
     929    OP_VORPS,
     930    OP_VPABSB,
     931    OP_VPABSD,
     932    OP_VPABSW,
     933    OP_VPACKSSDW,
     934    OP_VPACKSSWB,
     935    OP_VPACKUSWB,
     936    OP_VPADDB,
     937    OP_VPADDD,
     938    OP_VPADDQ,
     939    OP_VPADDSB,
     940    OP_VPADDSW,
     941    OP_VPADDUSB,
     942    OP_VPADDUSW,
     943    OP_VPADDW,
     944    OP_VPALIGNR,
    816945    OP_VPAND,
    817     OP_VANDPS,
    818     OP_VANDPD,
    819946    OP_VPANDN,
    820     OP_VANDNPS,
    821     OP_VANDNPD,
    822     OP_VPOR,
    823     OP_VORPS,
    824     OP_VORPD,
    825     OP_VPXOR,
    826     OP_VXORPS,
    827     OP_VXORPD,
    828     OP_VPMOVMSKB,
     947    OP_VPAVGB,
     948    OP_VPAVGW,
     949    OP_VPBLENDD,
     950    OP_VPBLENDVB,
     951    OP_VPBLENDW,
     952    OP_VPBROADCASTB,
     953    OP_VPBROADCASTD,
     954    OP_VPBROADCASTI128,
     955    OP_VPBROADCASTQ,
     956    OP_VPBROADCASTW,
     957    OP_VPCLMULQDQ,
    829958    OP_VPCMPEQB,
    830     OP_VPCMPEQW,
    831959    OP_VPCMPEQD,
    832960    OP_VPCMPEQQ,
     961    OP_VPCMPEQW,
     962    OP_VPCMPESTRI,
     963    OP_VPCMPESTRM,
    833964    OP_VPCMPGTB,
    834     OP_VPCMPGTW,
    835965    OP_VPCMPGTD,
    836966    OP_VPCMPGTQ,
    837     OP_VPADDB,
    838     OP_VPADDW,
    839     OP_VPADDD,
    840     OP_VPADDQ,
    841     OP_VPSUBB,
    842     OP_VPSUBW,
    843     OP_VPSUBD,
    844     OP_VPSUBQ,
     967    OP_VPCMPGTW,
     968    OP_VPCMPISTRI,
     969    OP_VPCMPISTRM,
     970    OP_VPERM2F128,
     971    OP_VPERM2I128,
     972    OP_VPERMD,
     973    OP_VPERMILPD,
     974    OP_VPERMILPS,
     975    OP_VPERMPD,
     976    OP_VPERMPS,
     977    OP_VPERMQ,
     978    OP_VPEXTRB,
     979    OP_VPEXTRD,
     980    OP_VPEXTRW,
     981    OP_VPHADDD,
     982    OP_VPHADDSW,
     983    OP_VPHADDW,
     984    OP_VPHMINPOSUW,
     985    OP_VPHSUBD,
     986    OP_VPHSUBSW,
     987    OP_VPHSUBW,
     988    OP_VPINSRB,
     989    OP_VPINSRD,
     990    OP_VPINSRW,
     991    OP_VPMADDUBSW,
     992    OP_VPMADDWD,
     993    OP_VPMASKMOVD,
     994    OP_VPMAXSB,
     995    OP_VPMAXSD,
     996    OP_VPMAXSW,
     997    OP_VPMAXUB,
     998    OP_VPMAXUD,
     999    OP_VPMAXUW,
     1000    OP_VPMINSB,
     1001    OP_VPMINSW,
     1002    OP_VPMINUB,
     1003    OP_VPMINUD,
     1004    OP_VPMINUW,
     1005    OP_VPMOVMSKB,
     1006    OP_VPMOVSX,
     1007    OP_VPMOVZX,
     1008    OP_VPMULDQ,
     1009    OP_VPMULHRSW,
     1010    OP_VPMULHUW,
     1011    OP_VPMULHW,
     1012    OP_VPMULLD,
     1013    OP_VPMULLW,
     1014    OP_VPMULUDQ,
     1015    OP_VPOR,
     1016    OP_VPSADBW,
    8451017    OP_VPSHUFB,
    8461018    OP_VPSHUFD,
    8471019    OP_VPSHUFHW,
    8481020    OP_VPSHUFLW,
     1021    OP_VPSIGNB,
     1022    OP_VPSIGND,
     1023    OP_VPSIGNW,
     1024    OP_VPSLLD,
     1025    OP_VPSLLQ,
     1026    OP_VPSLLVD,
     1027    OP_VPSLLW,
     1028    OP_VPSRAD,
     1029    OP_VPSRAVD,
     1030    OP_VPSRAW,
     1031    OP_VPSRLD,
     1032    OP_VPSRLQ,
     1033    OP_VPSRLVD,
     1034    OP_VPSRLW,
     1035    OP_VPSUBB,
     1036    OP_VPSUBD,
     1037    OP_VPSUBQ,
     1038    OP_VPSUBSB,
     1039    OP_VPSUBSW,
     1040    OP_VPSUBUSB,
     1041    OP_VPSUBUSW,
     1042    OP_VPSUBW,
     1043    OP_VPTEST,
    8491044    OP_VPUNPCKHBW,
    850     OP_VPUNPCKHWD,
    8511045    OP_VPUNPCKHDQ,
    8521046    OP_VPUNPCKHQDQ,
     1047    OP_VPUNPCKHWD,
    8531048    OP_VPUNPCKLBW,
    854     OP_VPUNPCKLWD,
    8551049    OP_VPUNPCKLDQ,
    8561050    OP_VPUNPCKLQDQ,
    857     OP_VPACKSSWB,
    858     OP_VPACKSSDW,
    859     OP_VPACKUSWB,
    860     OP_VPACKUSDW,
     1051    OP_VPUNPCKLWD,
     1052    OP_VPXOR,
     1053    OP_VRCPPS,
     1054    OP_VRCPSS,
     1055    OP_VROUNDPD,
     1056    OP_VROUNDPS,
     1057    OP_VROUNDSD,
     1058    OP_VROUNDSS,
     1059    OP_VRSQRTPS,
     1060    OP_VRSQRTSS,
     1061    OP_VSHUFPD,
     1062    OP_VSHUFPS,
     1063    OP_VSQRTPD,
     1064    OP_VSQRTPS,
     1065    OP_VSQRTSD,
     1066    OP_VSQRTSS,
     1067    OP_VSUBPD,
     1068    OP_VSUBPS,
     1069    OP_VSUBSD,
     1070    OP_VSUBSS,
     1071    OP_VTESTPD,
     1072    OP_VTESTPS,
     1073    OP_VUCOMISD,
     1074    OP_VUCOMISS,
     1075    OP_VUNPCKHPD,
     1076    OP_VUNPCKHPS,
     1077    OP_VUNPCKLPD,
     1078    OP_VUNPCKLPS,
     1079    OP_VVPACKUSDW,
     1080    OP_VXORPD,
     1081    OP_VXORPS,
     1082    OP_VZEROALL,
     1083
    8611084/** @} */
    8621085    OP_END_OF_OPCODES
  • trunk/src/VBox/Disassembler/DisasmTables.cpp

    r95541 r95544  
    32093209};
    32103210
    3211 /* Vex codes for two bytes opcodes starting with 0Fh */
     3211
     3212
     3213/* VEX Map 1 - two bytes opcodes starting with 0Fh */
    32123214const DISOPCODE g_aDisasVexMap1[] =
    32133215{
    3214     /* 1 */
    3215     OPVEX("vmovups %Vps,%Wps",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVUPS,     OP_PARM_Vps,    OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3216     OPVEX("vmovups %Wps,%Vps",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVUPS,     OP_PARM_Wps,    OP_PARM_Vps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3217     OPVEX("&vmovlps/vmovhlps %Vq,%Hq,%Wq",IDX_ParseModRM,IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_VMOVLPS,     OP_PARM_Vq,     OP_PARM_Hq,     OP_PARM_Wq,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3218     OPVEX("vmovlps %Mq,%Vq",         IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVLPS,     OP_PARM_Mq,     OP_PARM_Vq,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3219     OPVEX("vunpcklps %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_UNPCKLPS,    OP_PARM_Vx,     OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3220     OPVEX("vunpckhps %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_UNPCKHPS,    OP_PARM_Vx,     OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3221     OPVEX("&vmovhps/vmovlhps %Vdq,%Hq,%Wq",IDX_ParseModRM,IDX_ParseVexDest,  IDX_UseModRM,   0,          OP_VMOVHPS,     OP_PARM_Vdq,    OP_PARM_Hq,     OP_PARM_Wq,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3222     OPVEX("vmovhps %Mq,%Vq",         IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVHPS,     OP_PARM_Mq,     OP_PARM_Vq,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3216    /* 1   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3217    OPVEX("vmovups %Vps,%Wps",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVUPS,         OP_PARM_Vps,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3218    OPVEX("vmovups %Wps,%Vps",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVUPS,         OP_PARM_Wps,  OP_PARM_Vps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3219    OPVEX("&vmovlps/vmovhlps %Vq,%Hq,%Wq",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVLPS,         OP_PARM_Vq,   OP_PARM_Hq,   OP_PARM_Wq,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3220    OPVEX("vmovlps %Mq,%Vq",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVLPS,         OP_PARM_Mq,   OP_PARM_Vq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3221    OPVEX("vunpcklps %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VUNPCKLPS,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3222    OPVEX("vunpckhps %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VUNPCKHPS,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3223    OPVEX("&vmovhps/vmovlhps %Vdq,%Hq,%Wq", IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVHPS,         OP_PARM_Vdq,  OP_PARM_Hq,   OP_PARM_Wq,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3224    OPVEX("vmovhps %Mq,%Vq",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVHPS,         OP_PARM_Mq,   OP_PARM_Vq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    32233225    INVALID_OPCODE,
    32243226    INVALID_OPCODE,
     
    32393241    INVALID_OPCODE,
    32403242    INVALID_OPCODE,
    3241     OPVEX("vmovaps %Vps,%Wps",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_MOVAPS,      OP_PARM_Vps,    OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3242     OPVEX("vmovaps %Wps,%Vps",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_MOVAPS,      OP_PARM_Wps,    OP_PARM_Vps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3243     INVALID_OPCODE,
    3244     OPVEX("vmovntps %Mps,%Vps",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_MOVNTPS,     OP_PARM_Mps,    OP_PARM_Vps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3245     INVALID_OPCODE,
    3246     INVALID_OPCODE,
    3247     OPVEX("vucomiss %Vss,%Wss",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_UCOMISS,     OP_PARM_Vss,    OP_PARM_Wss,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3248     OPVEX("vcomiss %Vss,%Wss",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_COMISS,      OP_PARM_Vss,    OP_PARM_Wss,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3243    OPVEX("vmovaps %Vps,%Wps",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVAPS,         OP_PARM_Vps, OP_PARM_Wps,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3244    OPVEX("vmovaps %Wps,%Vps",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVAPS,         OP_PARM_Wps, OP_PARM_Vps,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3245    INVALID_OPCODE,
     3246    OPVEX("vmovntps %Mps,%Vps",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVNTPS,        OP_PARM_Mps, OP_PARM_Vps,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3247    INVALID_OPCODE,
     3248    INVALID_OPCODE,
     3249    OPVEX("vucomiss %Vss,%Wss",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VUCOMISS,        OP_PARM_Vss, OP_PARM_Wss,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3250    OPVEX("vcomiss %Vss,%Wss",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCOMISS,         OP_PARM_Vss, OP_PARM_Wss,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    32493251
    32503252    /* 3 */
     
    32553257
    32563258    /* 5 */
    3257     OPVEX("vmovmskps %Gy,%Ups",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_MOVMSKPS,    OP_PARM_Gy,      OP_PARM_Ups,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3258     OPVEX("vsqrtps %Vps,%Wps",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_SQRTPS,      OP_PARM_Vps,     OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3259     OPVEX("vrsqrtps %Vps,%Wps",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_RSQRTPS,     OP_PARM_Vps,     OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3260     OPVEX("vrcpps %Vps,%Wps",        IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_RCPPS,       OP_PARM_Vps,     OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3261     OPVEX("vandps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VANDPS,      OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3262     OPVEX("vandnps %Vps,%Hps,%Wps",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VANDNPS,     OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3263     OPVEX("vorps %Vps,%Hps,%Wps",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VORPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3264     OPVEX("vxorps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VXORPS,      OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3265     OPVEX("vaddps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_ADDPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3266     OPVEX("vmulps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_MULPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3267     OPVEX("vcvtps2pd %Vpd,%Wps",     IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_CVTPS2PD,    OP_PARM_Vpd,     OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3268     OPVEX("vcvtdq2ps %Vps,%Wdq",     IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_CVTDQ2PS,    OP_PARM_Vps,     OP_PARM_Wdq,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3269     OPVEX("vsubps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_SUBPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3270     OPVEX("vminps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_MINPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3271     OPVEX("vdivps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_DIVPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3272     OPVEX("vmaxps %Vps,%Hps,%Wps",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_MAXPS,       OP_PARM_Vps,     OP_PARM_Hps,    OP_PARM_Wps,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3273 
    3274     /* 6 */
     3259    OPVEX("vmovmskps %Gy,%Ups",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVMSKPS,       OP_PARM_Gy,   OP_PARM_Ups,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3260    OPVEX("vsqrtps %Vps,%Wps",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VSQRTPS,         OP_PARM_Vps,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3261    OPVEX("vrsqrtps %Vps,%Wps",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VRSQRTPS,        OP_PARM_Vps,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3262    OPVEX("vrcpps %Vps,%Wps",               IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VRCPPS,          OP_PARM_Vps,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3263    OPVEX("vandps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VANDPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3264    OPVEX("vandnps %Vps,%Hps,%Wps",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VANDNPS,         OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3265    OPVEX("vorps %Vps,%Hps,%Wps",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VORPS,           OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3266    OPVEX("vxorps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VXORPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3267    OPVEX("vaddps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VADDPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3268    OPVEX("vmulps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMULPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3269    OPVEX("vcvtps2pd %Vpd,%Wps",            IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTPS2PD,       OP_PARM_Vpd,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3270    OPVEX("vcvtdq2ps %Vps,%Wdq",            IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTDQ2PS,       OP_PARM_Vps,  OP_PARM_Wdq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3271    OPVEX("vsubps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VSUBPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3272    OPVEX("vminps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMINPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3273    OPVEX("vdivps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VDIVPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3274    OPVEX("vmaxps %Vps,%Hps,%Wps",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMAXPS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3275
     3276    /* 6   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    32753277    INVALID_OPCODE_BLOCK
    32763278
     
    32873289     * where name2 is used when VEX.L bit is set,
    32883290     * name1 otherwise. */
    3289     OPVEX("@vzeroupper/vzeroall",     0,                  0,                  0,              0,         OP_EMMS,        OP_PARM_NONE,    OP_PARM_NONE,   OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3291    OPVEX("@vzeroupper/vzeroall",           0,                  0,                  0,                  0,                  OP_VZEROALL,        OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    32903292    INVALID_OPCODE,
    32913293    INVALID_OPCODE,
     
    33123314    INVALID_OPCODE,
    33133315    INVALID_OPCODE,
    3314     OPVEX("vcmpss %Vps,%Hps,%Wps,%Ib",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_CMPSS,   OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,   OP_PARM_Ib,     DISOPTYPE_HARMLESS),
    3315     INVALID_OPCODE,
    3316     INVALID_OPCODE,
    3317     INVALID_OPCODE,
    3318     OPVEX("vshufps %Vps,%Hps,%Wps,%Ib",  IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_SHUFPS,   OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,   OP_PARM_Ib,     DISOPTYPE_HARMLESS),
     3316    OPVEX("vcmpss %Vps,%Hps,%Wps,%Ib",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VCMPSS,          OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3317    INVALID_OPCODE,
     3318    INVALID_OPCODE,
     3319    INVALID_OPCODE,
     3320    OPVEX("vshufps %Vps,%Hps,%Wps,%Ib",     IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VSHUFPS,         OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3321    /*     format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    33193322};
    33203323const DISOPMAPDESC g_DisasVexMap1Range = { &g_aDisasVexMap1[0], 0x10, RT_ELEMENTS(g_aDisasVexMap1) };
     
    33233326static const DISOPCODE g_aDisasVexMap1_66[] =
    33243327{
    3325     /* 1 */
    3326     OPVEX("vmovupd %Vpd,%Wpd",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVUPD,     OP_PARM_Vpd,    OP_PARM_Wpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3327     OPVEX("vmovupd %Wpd,%Vpd",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVUPD,     OP_PARM_Wpd,    OP_PARM_Vpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3328     OPVEX("vmovlpd %Vq,%Hq,%Mq",     IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_VMOVLPD,     OP_PARM_Vq,     OP_PARM_Hq,     OP_PARM_Mq,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3329     OPVEX("vmovlpd %Mq,%Vq",         IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVLPD,     OP_PARM_Mq,     OP_PARM_Vq,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3330     OPVEX("vunpcklpd %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_UNPCKLPD,    OP_PARM_Vx,     OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3331     OPVEX("vunpckhpd %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_UNPCKHPD,    OP_PARM_Vx,     OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3332     OPVEX("vmovhpd %Vdq,%Hq,%Mq",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,          OP_VMOVHPD,     OP_PARM_Vdq,    OP_PARM_Hq,     OP_PARM_Mq,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3333     OPVEX("vmovhpd %Mq,%Vq",         IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_VMOVHPD,     OP_PARM_Mq,     OP_PARM_Vq,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3328    /* 1   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3329    OPVEX("vmovupd %Vpd,%Wpd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVUPD,         OP_PARM_Vpd,  OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3330    OPVEX("vmovupd %Wpd,%Vpd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVUPD,         OP_PARM_Wpd,  OP_PARM_Vpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3331    OPVEX("vmovlpd %Vq,%Hq,%Mq",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVLPD,         OP_PARM_Vq,   OP_PARM_Hq,   OP_PARM_Mq,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3332    OPVEX("vmovlpd %Mq,%Vq",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVLPD,         OP_PARM_Mq,   OP_PARM_Vq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3333    OPVEX("vunpcklpd %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VUNPCKLPD,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3334    OPVEX("vunpckhpd %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VUNPCKHPD,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3335    OPVEX("vmovhpd %Vdq,%Hq,%Mq",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVHPD,         OP_PARM_Vdq,  OP_PARM_Hq,   OP_PARM_Mq,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3336    OPVEX("vmovhpd %Mq,%Vq",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVHPD,         OP_PARM_Mq,   OP_PARM_Vq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    33343337    INVALID_OPCODE,
    33353338    INVALID_OPCODE,
     
    33503353    INVALID_OPCODE,
    33513354    INVALID_OPCODE,
    3352     OPVEX("vmovapd %Vpd,%Wpd",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_MOVAPD,      OP_PARM_Vpd,    OP_PARM_Wpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3353     OPVEX("vmovapd %Wpd,%Vpd",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_MOVAPD,      OP_PARM_Wpd,    OP_PARM_Vpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3354     INVALID_OPCODE,
    3355     OPVEX("vmovntpd %Mpd,%Vpd",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_MOVNTPD,     OP_PARM_Mpd,    OP_PARM_Vpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3356     INVALID_OPCODE,
    3357     INVALID_OPCODE,
    3358     OPVEX("vucomisd %Vsd,%Wsd",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_UCOMISD,     OP_PARM_Vsd,    OP_PARM_Wsd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3359     OPVEX("vcomisd %Vsd,%Wsd",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,          OP_COMISD,      OP_PARM_Vsd,    OP_PARM_Wsd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3355    OPVEX("vmovapd %Vpd,%Wpd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVAPD,         OP_PARM_Vpd,  OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3356    OPVEX("vmovapd %Wpd,%Vpd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVAPD,         OP_PARM_Wpd,  OP_PARM_Vpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3357    INVALID_OPCODE,
     3358    OPVEX("vmovntpd %Mpd,%Vpd",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVNTPD,        OP_PARM_Mpd,  OP_PARM_Vpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3359    INVALID_OPCODE,
     3360    INVALID_OPCODE,
     3361    OPVEX("vucomisd %Vsd,%Wsd",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VUCOMISD,        OP_PARM_Vsd,  OP_PARM_Wsd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3362    OPVEX("vcomisd %Vsd,%Wsd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCOMISD,         OP_PARM_Vsd,  OP_PARM_Wsd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    33603363
    33613364    /* 3 */
     
    33663369
    33673370    /* 5 */
    3368     OPVEX("vmovmskpd %Gy,%Upd",      IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_MOVMSKPD,    OP_PARM_Gy,      OP_PARM_Upd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3369     OPVEX("vsqrtpd %Vpd,%Wpd",       IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_SQRTPD,      OP_PARM_Vpd,     OP_PARM_Wpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3370     INVALID_OPCODE,
    3371     INVALID_OPCODE,
    3372     OPVEX("vandpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VANDPD,      OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3373     OPVEX("vandnpd %Vpd,%Hpd,%Wpd",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VANDNPD,     OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3374     OPVEX("vorpd %Vpd,%Hpd,%Wpd",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VORPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3375     OPVEX("vxorpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VXORPD,      OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3376     OPVEX("vaddpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_ADDPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3377     OPVEX("vmulpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_MULPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3378     OPVEX("vcvtpd2ps %Vps,%Wpd",     IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_CVTPD2PS,    OP_PARM_Vps,     OP_PARM_Wpd,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3379     OPVEX("vcvtps2dq %Vdq,%Wps",     IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_CVTPS2DQ,    OP_PARM_Vdq,     OP_PARM_Wps,    OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3380     OPVEX("vsubpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_SUBPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3381     OPVEX("vminpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_MINPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3382     OPVEX("vdivpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_DIVPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3383     OPVEX("vmaxpd %Vpd,%Hpd,%Wpd",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_MAXPD,       OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3371    OPVEX("vmovmskpd %Gy,%Upd",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVMSKPD,       OP_PARM_Gy,   OP_PARM_Upd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3372    OPVEX("vsqrtpd %Vpd,%Wpd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VSQRTPD,         OP_PARM_Vpd,  OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3373    INVALID_OPCODE,
     3374    INVALID_OPCODE,
     3375    OPVEX("vandpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VANDPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3376    OPVEX("vandnpd %Vpd,%Hpd,%Wpd",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VANDNPD,         OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3377    OPVEX("vorpd %Vpd,%Hpd,%Wpd",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VORPD,           OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3378    OPVEX("vxorpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VXORPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3379    OPVEX("vaddpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VADDPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3380    OPVEX("vmulpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMULPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3381    OPVEX("vcvtpd2ps %Vps,%Wpd",            IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTPD2PS,       OP_PARM_Vps,  OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3382    OPVEX("vcvtps2dq %Vdq,%Wps",            IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTPS2DQ,       OP_PARM_Vdq,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3383    OPVEX("vsubpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VSUBPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3384    OPVEX("vminpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMINPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3385    OPVEX("vdivpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VDIVPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3386    OPVEX("vmaxpd %Vpd,%Hpd,%Wpd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMAXPD,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    33843387
    33853388
    33863389    /* 6 */
    3387     OPVEX("vpunpcklbw %Vx,%Hx,%Wx",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKLBW,  OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3388     OPVEX("vpunpcklwd %Vx,%Hx,%Wx",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKLWD,  OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3389     OPVEX("vpunpckldq %Vx,%Hx,%Wx",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKLDQ,  OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3390     OPVEX("vpacksswb %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPACKSSWB,   OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3391     OPVEX("vpcmpgtb %Vx,%Hx,%Wx",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPCMPGTB,    OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3392     OPVEX("vpcmpgtw %Vx,%Hx,%Wx",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPCMPGTW,    OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3393     OPVEX("vpcmpgtd %Vx,%Hx,%Wx",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPCMPGTD,    OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3394     OPVEX("vpackuswb %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPACKUSWB,   OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3395     OPVEX("vpunpckhbw %Vx,%Hx,%Wx",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKHBW,  OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3396     OPVEX("vpunpckhwd %Vx,%Hx,%Wx",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKHWD,  OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3397     OPVEX("vpunpckhdq %Vx,%Hx,%Wx",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKHDQ,  OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3398     OPVEX("vpackssdw %Vx,%Hx,%Wx",   IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPACKSSDW,   OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3399     OPVEX("vpunpcklqdq %Vx,%Hx,%Wx", IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKLQDQ, OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3400     OPVEX("vpunpckhqdq %Vx,%Hx,%Wx", IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPUNPCKHQDQ, OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3401     OPVEX("#vmovd/vmovq %Vy,%Ey",    IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_MOVD,        OP_PARM_Vy,      OP_PARM_Ey,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3402     OPVEX("vmovdqa %Vx,%Wx",         IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_MOVDQA,      OP_PARM_Vx,      OP_PARM_Wx,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
     3390    OPVEX("vpunpcklbw %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKLBW,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3391    OPVEX("vpunpcklwd %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKLWD,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3392    OPVEX("vpunpckldq %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKLDQ,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3393    OPVEX("vpacksswb %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPACKSSWB,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3394    OPVEX("vpcmpgtb %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPGTB,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3395    OPVEX("vpcmpgtw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPGTW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3396    OPVEX("vpcmpgtd %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPGTD,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3397    OPVEX("vpackuswb %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPACKUSWB,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3398    OPVEX("vpunpckhbw %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKHBW,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3399    OPVEX("vpunpckhwd %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKHWD,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3400    OPVEX("vpunpckhdq %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKHDQ,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3401    OPVEX("vpackssdw %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPACKSSDW,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3402    OPVEX("vpunpcklqdq %Vx,%Hx,%Wx",        IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKLQDQ,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3403    OPVEX("vpunpckhqdq %Vx,%Hx,%Wx",        IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPUNPCKHQDQ,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3404    OPVEX("#vmovd/vmovq %Vy,%Ey",           IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVD,           OP_PARM_Vy,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3405    OPVEX("vmovdqa %Vx,%Wx",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVDQA,         OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    34033406
    34043407    /* 7 */
    3405     OPVEX("vpshufd %Vx,%Wx,%Ib",     IDX_ParseModRM,     IDX_UseModRM,    IDX_ParseImmByte,  0,         OP_VPSHUFD,     OP_PARM_Vx,      OP_PARM_Wx,     OP_PARM_Ib,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3406     INVALID_OPCODE,
    3407     INVALID_OPCODE,
    3408     INVALID_OPCODE,
    3409     OPVEX("vpcmpeqb %Vx,%Hx,%Wx",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPCMPEQB,    OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3410     OPVEX("vpcmpeqw %Vx,%Hx,%Wx",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPCMPEQW,    OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3411     OPVEX("vpcmpeqd %Vx,%Hx,%Wx",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_VPCMPEQD,    OP_PARM_Vx,      OP_PARM_Hx,     OP_PARM_Wx,     OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3412     INVALID_OPCODE,
    3413     INVALID_OPCODE,
    3414     INVALID_OPCODE,
    3415     INVALID_OPCODE,
    3416     INVALID_OPCODE,
    3417     OPVEX("vhaddpd %Vpd,%Hpd,%Wpd",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_HADDPD,      OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3418     OPVEX("vhsubpd %Vpd,%Hpd,%Wpd",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,   0,         OP_HSUBPD,      OP_PARM_Vpd,     OP_PARM_Hpd,    OP_PARM_Wpd,    OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3419     OPVEX("vmovd/vmovq %Ey,%Vy",     IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_MOVD,        OP_PARM_Ey,      OP_PARM_Vy,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3420     OPVEX("vmovdqa %Wx,%Vx",         IDX_ParseModRM,     IDX_UseModRM,       0,              0,         OP_MOVDQA,      OP_PARM_Wx,      OP_PARM_Vx,     OP_PARM_NONE,   OP_PARM_NONE,  DISOPTYPE_HARMLESS),
    3421 
    3422     /* 8 */
     3408    OPVEX("vpshufd %Vx,%Wx,%Ib",            IDX_ParseModRM,     IDX_UseModRM,    IDX_ParseImmByte,      0,                  OP_VPSHUFD,         OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3409    INVALID_OPCODE,
     3410    INVALID_OPCODE,
     3411    INVALID_OPCODE,
     3412    OPVEX("vpcmpeqb %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPEQB,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3413    OPVEX("vpcmpeqw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPEQW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3414    OPVEX("vpcmpeqd %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPEQD,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3415    INVALID_OPCODE,
     3416    INVALID_OPCODE,
     3417    INVALID_OPCODE,
     3418    INVALID_OPCODE,
     3419    INVALID_OPCODE,
     3420    OPVEX("vhaddpd %Vpd,%Hpd,%Wpd",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VHADDPD,         OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3421    OPVEX("vhsubpd %Vpd,%Hpd,%Wpd",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VHSUBPD,         OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3422    OPVEX("vmovd/vmovq %Ey,%Vy",            IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVD,           OP_PARM_Ey,   OP_PARM_Vy,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3423    OPVEX("vmovdqa %Wx,%Vx",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVDQA,         OP_PARM_Wx,   OP_PARM_Vx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3424
     3425    /* 8   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    34233426    INVALID_OPCODE_BLOCK
    34243427
     
    34323435    INVALID_OPCODE_BLOCK
    34333436
     3437    /* c   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3438    INVALID_OPCODE,
     3439    INVALID_OPCODE,
     3440    OPVEX("vcmpps %Vpd,%Hpd,%Wpd,%Ib",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VCMPSS,          OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3441    INVALID_OPCODE,
     3442    // vpinsrw Vdq,Hdq,Ry/Mw,Ib
     3443    OPVEX("vpinsrw %Vdq,%Hdq,%Ey,%Ib",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPINSRW,         OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Ey,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3444    OPVEX("vpextrw %Gd,%Udq,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPEXTRW,         OP_PARM_Gd,   OP_PARM_Udq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3445    OPVEX("vshufpd %Vpd,%Hpd,%Wpd,%Ib",     IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VSHUFPD,         OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3446    INVALID_OPCODE,
     3447    INVALID_OPCODE,
     3448    INVALID_OPCODE,
     3449    INVALID_OPCODE,
     3450    INVALID_OPCODE,
     3451    INVALID_OPCODE,
     3452    INVALID_OPCODE,
     3453    INVALID_OPCODE,
     3454    INVALID_OPCODE,
     3455
     3456    /* d */
     3457    OPVEX("vaddsubpd %Vpd,%Hpd,%Wpd",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VADDSUBPD,       OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3458    OPVEX("vpsrlw %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSRLW,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3459    OPVEX("vpsrld %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSRLD,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3460    OPVEX("vpsrlq %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSRLQ,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3461    OPVEX("vpaddq %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDQ,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3462    OPVEX("vpmullw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULLW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3463    OPVEX("vmovq %Wq,%Vq",                  IDX_ParseModRM,     IDX_UseModRM,                  0,       0,                  OP_VMOVQ,           OP_PARM_Wq,   OP_PARM_Vq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3464    OPVEX("vpmovmskb %Gd,%Ux",              IDX_ParseModRM,     IDX_UseModRM,                  0,       0,                  OP_VPMOVMSKB,       OP_PARM_Gd,   OP_PARM_Ux,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS | DISOPTYPE_DEFAULT_64_OP_SIZE),
     3465    OPVEX("vpsubusb %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBUSB,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3466    OPVEX("vpsubusw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBUSW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3467    OPVEX("vpminub %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMINUB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3468    OPVEX("vpand %Vx,%Hx,%Wx",              IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPAND,           OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3469    OPVEX("vpaddusb %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDUSB,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3470    OPVEX("vpaddusw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDUSW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3471    OPVEX("vpmaxub %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMAXUB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3472    OPVEX("vpandn %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPANDN,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3473
     3474    /* e */
     3475    OPVEX("vpavgb %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPAVGB,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3476    OPVEX("vpsraw %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSRAW,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3477    OPVEX("vpsrad %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSRAD,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3478    OPVEX("vpavgw %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPAVGW,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3479    OPVEX("vpmulhuw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULHUW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3480    OPVEX("vpmulhw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULHW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3481    OPVEX("vcvttpd2dq %Vx,%Wpd",            IDX_ParseModRM,     IDX_UseModRM,                  0,       0,                  OP_VCVTTPD2DQ,      OP_PARM_Vx,   OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3482    OPVEX("vmovntdq %Mx,%Vx",               IDX_ParseModRM,     IDX_UseModRM,                  0,       0,                  OP_VMOVNTDQ,        OP_PARM_Mx,   OP_PARM_Vx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3483    OPVEX("vpsubsb %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBSB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3484    OPVEX("vpsubsw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBSW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3485    OPVEX("vpminsw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMINSW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3486    OPVEX("vpor %Vx,%Hx,%Wx",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPOR,            OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3487    OPVEX("vpaddsb %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDSB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3488    OPVEX("vpaddsw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDSW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3489    OPVEX("vpmaxsw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMAXSW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3490    OPVEX("vpxor %Vx,%Hx,%Wx",              IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPXOR,           OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3491
     3492    /* f */
     3493    INVALID_OPCODE,
     3494    OPVEX("vpsllw %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSLLW,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3495    OPVEX("vpslld %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSLLD,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3496    OPVEX("vpsllq %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSLLQ,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3497    OPVEX("vpmuludq %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULUDQ,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3498    OPVEX("vpmaddwd %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMADDWD,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3499    OPVEX("vpsadbw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSADBW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3500    OPVEX("vmaskmovdqu %Vdq,%Udq",          IDX_ParseModRM,     IDX_UseModRM,                  0,       0,                  OP_VMASKMOVDQU,     OP_PARM_Vdq,  OP_PARM_Udq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3501    OPVEX("vpsubb %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBB,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3502    OPVEX("vpsubw %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBW,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3503    OPVEX("vpsubd %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBD,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3504    OPVEX("vpsubq %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSUBQ,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3505    OPVEX("vpaddb %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDB,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3506    OPVEX("vpaddw %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDW,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3507    OPVEX("vpaddd %Vx,%Hx,%Wx",             IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPADDD,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3508    /*     format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3509};
     3510const DISOPMAPDESC g_DisasVexMap1_66Range = { &g_aDisasVexMap1_66[0], 0x10, RT_ELEMENTS(g_aDisasVexMap1_66) };
     3511
     3512static const DISOPCODE g_aDisasVexMap1F2[] =
     3513{
     3514    /* 1   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3515    OPVEX("vmovsd %Vx,%Hx,%Wsd",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVSD,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3516    OPVEX("vmovsd %Wsd,%Hx,%Vsd",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVSD,          OP_PARM_Wsd,  OP_PARM_Hx,   OP_PARM_Vsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3517    OPVEX("vmovddup %Vx,%Wx",               IDX_ParseModRM,     IDX_UseModRM,                  0,       0,                  OP_VMOVDDUP,        OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3518    INVALID_OPCODE,
     3519    INVALID_OPCODE,
     3520    INVALID_OPCODE,
     3521    INVALID_OPCODE,
     3522    INVALID_OPCODE,
     3523    INVALID_OPCODE,
     3524    INVALID_OPCODE,
     3525    INVALID_OPCODE,
     3526    INVALID_OPCODE,
     3527    INVALID_OPCODE,
     3528    INVALID_OPCODE,
     3529    INVALID_OPCODE,
     3530    INVALID_OPCODE,
     3531
     3532    /* 2 */
     3533    INVALID_OPCODE_BLOCK
     3534
     3535    /* 3 */
     3536    INVALID_OPCODE_BLOCK
     3537
     3538    /* 4 */
     3539    INVALID_OPCODE_BLOCK
     3540
     3541    /* 5 */
     3542    INVALID_OPCODE,
     3543    OPVEX("vsqrtsd %Vsd,%Hsd,%Wsd",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VSQRTSD,         OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3544    INVALID_OPCODE,
     3545    INVALID_OPCODE,
     3546    INVALID_OPCODE,
     3547    INVALID_OPCODE,
     3548    INVALID_OPCODE,
     3549    INVALID_OPCODE,
     3550    OPVEX("vaddsd %Vsd,%Hsd,%Wsd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VADDSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3551    OPVEX("vmulsd %Vsd,%Hsd,%Wsd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMULSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3552    OPVEX("vcvtsd2ss %Vss,%Hx,%Wsd",        IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VCVTSD2SS,       OP_PARM_Vss,  OP_PARM_Hx,   OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3553    INVALID_OPCODE,
     3554    OPVEX("vsubsd %Vsd,%Hsd,%Wsd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VSUBSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3555    OPVEX("vminsd %Vsd,%Hsd,%Wsd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMINSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3556    OPVEX("vdivsd %Vsd,%Hsd,%Wsd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VDIVSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3557    OPVEX("vmaxsd %Vsd,%Hsd,%Wsd",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMAXSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3558
     3559    /* 6 */
     3560    INVALID_OPCODE_BLOCK
     3561
     3562    /* 7 */
     3563    OPVEX("vpshuflw %Vx,%Wx,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPSHUFLW,        OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3564    INVALID_OPCODE,
     3565    INVALID_OPCODE,
     3566    INVALID_OPCODE,
     3567    INVALID_OPCODE,
     3568    INVALID_OPCODE,
     3569    INVALID_OPCODE,
     3570    INVALID_OPCODE,
     3571    INVALID_OPCODE,
     3572    INVALID_OPCODE,
     3573    INVALID_OPCODE,
     3574    INVALID_OPCODE,
     3575    OPVEX("vhaddps %Vps,%Hps,%Wps",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VHADDPS,         OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3576    OPVEX("vhsubps %Vps,%Hps,%Wps",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VHSUBPS,         OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3577    INVALID_OPCODE,
     3578    INVALID_OPCODE,
     3579
     3580    /* 8   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3581    INVALID_OPCODE_BLOCK
     3582
     3583    /* 9 */
     3584    INVALID_OPCODE_BLOCK
     3585
     3586    /* a */
     3587    INVALID_OPCODE_BLOCK
     3588
     3589    /* b */
     3590    INVALID_OPCODE_BLOCK
     3591
    34343592    /* c */
    34353593    INVALID_OPCODE,
    34363594    INVALID_OPCODE,
    3437     OPVEX("vcmpps %Vpd,%Hpd,%Wpd,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_CMPSS,   OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    3438     INVALID_OPCODE,
    3439     // vpinsrw Vdq,Hdq,Ry/Mw,Ib
    3440     OPVEX("vpinsrw %Vdq,%Hdq,%Ey,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_PINSRW,  OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Ey,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    3441     OPVEX("vpextrw %Gd,%Udq,%Ib",      IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseImmByte,              0,  OP_PEXTRW,  OP_PARM_Gd,   OP_PARM_Udq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3442     OPVEX("vshufpd %Vpd,%Hpd,%Wpd,%Ib",IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_SHUFPD,  OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3595    OPVEX("vcmpsd %Vsd,%Hsd,%Wsd,%Ib",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VCMPSD,          OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     3596    INVALID_OPCODE,
     3597    INVALID_OPCODE,
     3598    INVALID_OPCODE,
     3599    INVALID_OPCODE,
    34433600    INVALID_OPCODE,
    34443601    INVALID_OPCODE,
     
    34523609
    34533610    /* d */
    3454     OPVEX("vaddsubpd %Vpd,%Hpd,%Wpd", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_ADDSUBPD,  OP_PARM_Vpd,  OP_PARM_Hpd,  OP_PARM_Wpd,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3455     OPVEX("vpsrlw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRLW,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3456     OPVEX("vpsrld %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRLD,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3457     OPVEX("vpsrlq %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRLQ,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3458     OPVEX("vpaddq %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPADDQ,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3459     OPVEX("vpmullw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULLW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3460     OPVEX("vmovq %Wq,%Vq",            IDX_ParseModRM,    IDX_UseModRM,                  0,                0,  OP_MOVQ,      OP_PARM_Wq,   OP_PARM_Vq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3461     OPVEX("vpmovmskb %Gd,%Ux",        IDX_ParseModRM,    IDX_UseModRM,                  0,                0,  OP_VPMOVMSKB, OP_PARM_Gd,   OP_PARM_Ux,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS | DISOPTYPE_DEFAULT_64_OP_SIZE),
    3462     OPVEX("vpsubusb %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSUBUSB,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3463     OPVEX("vpsubusw %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSUBUSW,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3464     OPVEX("vpminub %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMINUB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3465     OPVEX("vpand %Vx,%Hx,%Wx",        IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPAND,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3466     OPVEX("vpaddusb %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PADDUSB,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3467     OPVEX("vpaddusw %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PADDUSW,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3468     OPVEX("vpmaxub %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMAXUB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3469     OPVEX("vpandn %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPANDN,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3611    OPVEX("vaddsubps %Vps,%Hps,%Wps",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VADDSUBPS,       OP_PARM_Vps,  OP_PARM_Hps,  OP_PARM_Wps,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3612    INVALID_OPCODE,
     3613    INVALID_OPCODE,
     3614    INVALID_OPCODE,
     3615    INVALID_OPCODE,
     3616    INVALID_OPCODE,
     3617    INVALID_OPCODE,
     3618    INVALID_OPCODE,
     3619    INVALID_OPCODE,
     3620    INVALID_OPCODE,
     3621    INVALID_OPCODE,
     3622    INVALID_OPCODE,
     3623    INVALID_OPCODE,
     3624    INVALID_OPCODE,
     3625    INVALID_OPCODE,
     3626    INVALID_OPCODE,
    34703627
    34713628    /* e */
    3472     OPVEX("vpavgb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PAVGB,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3473     OPVEX("vpsraw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRAW,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3474     OPVEX("vpsrad %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRAD,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3475     OPVEX("vpavgw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PAVGW,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3476     OPVEX("vpmulhuw %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULHUW,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3477     OPVEX("vpmulhw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULHW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3478     OPVEX("vcvttpd2dq %Vx,%Wpd",      IDX_ParseModRM,    IDX_UseModRM,                  0,                0,  OP_CVTTPD2DQ, OP_PARM_Vx,   OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3479     OPVEX("vmovntdq %Mx,%Vx",         IDX_ParseModRM,    IDX_UseModRM,                  0,                0,  OP_MOVNTDQ,   OP_PARM_Mx,   OP_PARM_Vx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3480     OPVEX("vpsubsb %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSUBSB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3481     OPVEX("vpsubsw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSUBSW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3482     OPVEX("vpminsw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMINSW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3483     OPVEX("vpor %Vx,%Hx,%Wx",         IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPOR,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3484     OPVEX("vpaddsb %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PADDSB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3485     OPVEX("vpaddsw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PADDSW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3486     OPVEX("vpmaxsw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMAXSW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3487     OPVEX("vpxor %Vx,%Hx,%Wx",        IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPXOR,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3629    INVALID_OPCODE,
     3630    INVALID_OPCODE,
     3631    INVALID_OPCODE,
     3632    INVALID_OPCODE,
     3633    INVALID_OPCODE,
     3634    INVALID_OPCODE,
     3635    OPVEX("vcvtpd2dq %Vx,%Wpd",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTPD2DQ,      OP_PARM_Vx,   OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3636    INVALID_OPCODE,
     3637    INVALID_OPCODE,
     3638    INVALID_OPCODE,
     3639    INVALID_OPCODE,
     3640    INVALID_OPCODE,
     3641    INVALID_OPCODE,
     3642    INVALID_OPCODE,
     3643    INVALID_OPCODE,
     3644    INVALID_OPCODE,
    34883645
    34893646    /* f */
    3490     INVALID_OPCODE,
    3491     OPVEX("vpsllw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSLLW,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3492     OPVEX("vpslld %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSLLD,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3493     OPVEX("vpsllq %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSLLQ,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3494     OPVEX("vpmuludq %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULUDQ,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3495     OPVEX("vpmaddwd %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMADDWD,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3496     OPVEX("vpsadbw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSADBW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3497     OPVEX("vmaskmovdqu %Vdq,%Udq",    IDX_ParseModRM,    IDX_UseModRM,                  0,                0,  OP_MASKMOVDQU,OP_PARM_Vdq,  OP_PARM_Udq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3498     OPVEX("vpsubb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPSUBB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3499     OPVEX("vpsubw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPSUBW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3500     OPVEX("vpsubd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPSUBD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3501     OPVEX("vpsubq %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPSUBQ,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3502     OPVEX("vpaddb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPADDB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3503     OPVEX("vpaddw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPADDW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3504     OPVEX("vpaddd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPADDD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3505 };
    3506 const DISOPMAPDESC g_DisasVexMap1_66Range = { &g_aDisasVexMap1_66[0], 0x10, RT_ELEMENTS(g_aDisasVexMap1_66) };
    3507 
    3508 static const DISOPCODE g_aDisasVexMap1F2[] =
    3509 {
    3510     /* 1 */
    3511     OPVEX("vmovsd %Vx,%Hx,%Wsd",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MOVSD,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3512     OPVEX("vmovsd %Wsd,%Hx,%Vsd",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MOVSD,     OP_PARM_Wsd,  OP_PARM_Hx,   OP_PARM_Vsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3513     OPVEX("vmovddup %Vx,%Wx",         IDX_ParseModRM,    IDX_UseModRM,                  0,                0,  OP_MOVDDUP,   OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3514     INVALID_OPCODE,
    3515     INVALID_OPCODE,
    3516     INVALID_OPCODE,
    3517     INVALID_OPCODE,
    3518     INVALID_OPCODE,
    3519     INVALID_OPCODE,
    3520     INVALID_OPCODE,
    3521     INVALID_OPCODE,
    3522     INVALID_OPCODE,
    3523     INVALID_OPCODE,
    3524     INVALID_OPCODE,
    3525     INVALID_OPCODE,
    3526     INVALID_OPCODE,
    3527 
    3528     /* 2 */
    3529     INVALID_OPCODE_BLOCK
    3530 
    3531     /* 3 */
    3532     INVALID_OPCODE_BLOCK
    3533 
    3534     /* 4 */
    3535     INVALID_OPCODE_BLOCK
    3536 
    3537     /* 5 */
    3538     INVALID_OPCODE,
    3539     OPVEX("vsqrtsd %Vsd,%Hsd,%Wsd",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_SQRTSD,   OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3540     INVALID_OPCODE,
    3541     INVALID_OPCODE,
    3542     INVALID_OPCODE,
    3543     INVALID_OPCODE,
    3544     INVALID_OPCODE,
    3545     INVALID_OPCODE,
    3546     OPVEX("vaddsd %Vsd,%Hsd,%Wsd",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_ADDSD,    OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3547     OPVEX("vmulsd %Vsd,%Hsd,%Wsd",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MULSD,    OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3548     OPVEX("vcvtsd2ss %Vss,%Hx,%Wsd",  IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_CVTSD2SS, OP_PARM_Vss,   OP_PARM_Hx,    OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3549     INVALID_OPCODE,
    3550     OPVEX("vsubsd %Vsd,%Hsd,%Wsd",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_SUBSD,    OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3551     OPVEX("vminsd %Vsd,%Hsd,%Wsd",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MINSD,    OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3552     OPVEX("vdivsd %Vsd,%Hsd,%Wsd",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_DIVSD,    OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3553     OPVEX("vmaxsd %Vsd,%Hsd,%Wsd",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MAXSD,    OP_PARM_Vsd,   OP_PARM_Hsd,   OP_PARM_Wsd,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3554 
    3555     /* 6 */
    3556     INVALID_OPCODE_BLOCK
    3557 
    3558     /* 7 */
    3559     OPVEX("vpshuflw %Vx,%Wx,%Ib",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseImmByte,            0,  OP_VPSHUFLW, OP_PARM_Vx,    OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3560     INVALID_OPCODE,
    3561     INVALID_OPCODE,
    3562     INVALID_OPCODE,
    3563     INVALID_OPCODE,
    3564     INVALID_OPCODE,
    3565     INVALID_OPCODE,
    3566     INVALID_OPCODE,
    3567     INVALID_OPCODE,
    3568     INVALID_OPCODE,
    3569     INVALID_OPCODE,
    3570     INVALID_OPCODE,
    3571     OPVEX("vhaddps %Vps,%Hps,%Wps",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_HADDPS,   OP_PARM_Vps,   OP_PARM_Hps,   OP_PARM_Wps,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3572     OPVEX("vhsubps %Vps,%Hps,%Wps",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_HSUBPS,   OP_PARM_Vps,   OP_PARM_Hps,   OP_PARM_Wps,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3573     INVALID_OPCODE,
    3574     INVALID_OPCODE,
    3575 
    3576     /* 8 */
    3577     INVALID_OPCODE_BLOCK
    3578 
    3579     /* 9 */
    3580     INVALID_OPCODE_BLOCK
    3581 
    3582     /* a */
    3583     INVALID_OPCODE_BLOCK
    3584 
    3585     /* b */
    3586     INVALID_OPCODE_BLOCK
    3587 
    3588     /* c */
    3589     INVALID_OPCODE,
    3590     INVALID_OPCODE,
    3591     OPVEX("vcmpsd %Vsd,%Hsd,%Wsd,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_CMPSD, OP_PARM_Vsd,  OP_PARM_Hsd,  OP_PARM_Wsd,  OP_PARM_Ib,    DISOPTYPE_HARMLESS),
    3592     INVALID_OPCODE,
    3593     INVALID_OPCODE,
    3594     INVALID_OPCODE,
    3595     INVALID_OPCODE,
    3596     INVALID_OPCODE,
    3597     INVALID_OPCODE,
    3598     INVALID_OPCODE,
    3599     INVALID_OPCODE,
    3600     INVALID_OPCODE,
    3601     INVALID_OPCODE,
    3602     INVALID_OPCODE,
    3603     INVALID_OPCODE,
    3604     INVALID_OPCODE,
    3605 
    3606     /* d */
    3607     OPVEX("vaddsubps %Vps,%Hps,%Wps",  IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_ADDSUBPS,   OP_PARM_Vps,   OP_PARM_Hps,   OP_PARM_Wps,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3608     INVALID_OPCODE,
    3609     INVALID_OPCODE,
    3610     INVALID_OPCODE,
    3611     INVALID_OPCODE,
    3612     INVALID_OPCODE,
    3613     INVALID_OPCODE,
    3614     INVALID_OPCODE,
    3615     INVALID_OPCODE,
    3616     INVALID_OPCODE,
    3617     INVALID_OPCODE,
    3618     INVALID_OPCODE,
    3619     INVALID_OPCODE,
    3620     INVALID_OPCODE,
    3621     INVALID_OPCODE,
    3622     INVALID_OPCODE,
    3623 
    3624     /* e */
    3625     INVALID_OPCODE,
    3626     INVALID_OPCODE,
    3627     INVALID_OPCODE,
    3628     INVALID_OPCODE,
    3629     INVALID_OPCODE,
    3630     INVALID_OPCODE,
    3631     OPVEX("vcvtpd2dq %Vx,%Wpd",     IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_CVTPD2DQ,  OP_PARM_Vx,   OP_PARM_Wpd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3632     INVALID_OPCODE,
    3633     INVALID_OPCODE,
    3634     INVALID_OPCODE,
    3635     INVALID_OPCODE,
    3636     INVALID_OPCODE,
    3637     INVALID_OPCODE,
    3638     INVALID_OPCODE,
    3639     INVALID_OPCODE,
    3640     INVALID_OPCODE,
    3641 
    3642     /* f */
    3643     OPVEX("vlddqu %Vx,%Mx",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_LDDQU,  OP_PARM_Vx,   OP_PARM_Mx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3647    OPVEX("vlddqu %Vx,%Mx",                 IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VLDDQU,          OP_PARM_Vx,   OP_PARM_Mx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3648    /*     format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    36443649};
    36453650const DISOPMAPDESC g_DisasVexMap1F2Range = { &g_aDisasVexMap1F2[0], 0x10, RT_ELEMENTS(g_aDisasVexMap1F2) };
     
    36483653static const DISOPCODE g_aDisasVexMap1F3[] =
    36493654{
    3650     /* 1 */
    3651     OPVEX("vmovss %Vx,%Hx,%Wss",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VMOVSS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wss,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3652     OPVEX("vmovss %Wss,%Hx,%Vss",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VMOVSS,    OP_PARM_Wss,  OP_PARM_Hx,   OP_PARM_Vss,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3653     OPVEX("vmovsldup %Vx,%Wx",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_VMOVSLDUP, OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3654     INVALID_OPCODE,
    3655     INVALID_OPCODE,
    3656     INVALID_OPCODE,
    3657     OPVEX("vmovshdup %Vx,%Wx",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_VMOVSHDUP, OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3655    /* 1   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3656    OPVEX("vmovss %Vx,%Hx,%Wss",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVSS,          OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3657    OPVEX("vmovss %Wss,%Hx,%Vss",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMOVSS,          OP_PARM_Wss,  OP_PARM_Hx,   OP_PARM_Vss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3658    OPVEX("vmovsldup %Vx,%Wx",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVSLDUP,       OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3659    INVALID_OPCODE,
     3660    INVALID_OPCODE,
     3661    INVALID_OPCODE,
     3662    OPVEX("vmovshdup %Vx,%Wx",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVSHDUP,       OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    36583663    INVALID_OPCODE,
    36593664    INVALID_OPCODE,
     
    36773682    INVALID_OPCODE,
    36783683    INVALID_OPCODE,
    3679     OPVEX("vcvtsi2ss %Vss,%Hss,%Ey",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_CVTSI2SS,  OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3680     INVALID_OPCODE,
    3681     OPVEX("vcvttss2si %Gy,%Wss",       IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_CVTTSS2SI, OP_PARM_Gy,    OP_PARM_Wss,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3682     OPVEX("vcvtss2si %Gy,%Wss",        IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_CVTSS2SI,  OP_PARM_Gy,    OP_PARM_Wss,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3684    OPVEX("vcvtsi2ss %Vss,%Hss,%Ey",        IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VCVTSI2SS,       OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3685    INVALID_OPCODE,
     3686    OPVEX("vcvttss2si %Gy,%Wss",            IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTTSS2SI,      OP_PARM_Gy,   OP_PARM_Wss,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3687    OPVEX("vcvtss2si %Gy,%Wss",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTSS2SI,       OP_PARM_Gy,   OP_PARM_Wss,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    36833688    INVALID_OPCODE,
    36843689    INVALID_OPCODE,
     
    36923697    /* 5 */
    36933698    INVALID_OPCODE,
    3694     OPVEX("vsqrtss %Vss,%Hss,%Wss",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_SQRTSS,     OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3695     OPVEX("vrsqrtss %Vss,%Hss,%Wss",  IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_RSQRTSS,    OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3696     OPVEX("vrcpss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_RCPSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3697     INVALID_OPCODE,
    3698     INVALID_OPCODE,
    3699     INVALID_OPCODE,
    3700     INVALID_OPCODE,
    3701     OPVEX("vaddss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_ADDSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3702     OPVEX("vmulss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MULSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3703     OPVEX("vcvtss2sd %Vsd,%Hx,%Wss",  IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_CVTSS2SD,   OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3704     OPVEX("vcvttps2dq %Vdq,%Wps",     IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_CVTTPS2DQ,  OP_PARM_Vdq,   OP_PARM_Wps,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3705     OPVEX("vsubss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_SUBSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3706     OPVEX("vminss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MINSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3707     OPVEX("vdivss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_DIVSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3708     OPVEX("vmaxss %Vss,%Hss,%Wss",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MAXSS,      OP_PARM_Vss,   OP_PARM_Hss,   OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3699    OPVEX("vsqrtss %Vss,%Hss,%Wss",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VSQRTSS,         OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3700    OPVEX("vrsqrtss %Vss,%Hss,%Wss",        IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VRSQRTSS,        OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3701    OPVEX("vrcpss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VRCPSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3702    INVALID_OPCODE,
     3703    INVALID_OPCODE,
     3704    INVALID_OPCODE,
     3705    INVALID_OPCODE,
     3706    OPVEX("vaddss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VADDSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3707    OPVEX("vmulss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMULSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3708    OPVEX("vcvtss2sd %Vsd,%Hx,%Wss",        IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VCVTSS2SD,       OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3709    OPVEX("vcvttps2dq %Vdq,%Wps",           IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTTPS2DQ,      OP_PARM_Vdq,  OP_PARM_Wps,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3710    OPVEX("vsubss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VSUBSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3711    OPVEX("vminss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMINSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3712    OPVEX("vdivss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VDIVSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3713    OPVEX("vmaxss %Vss,%Hss,%Wss",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMAXSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    37093714
    37103715    /* 6 */
     
    37243729    INVALID_OPCODE,
    37253730    INVALID_OPCODE,
    3726     OPVEX("vmovdqu %Vx,%Wx",          IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_MOVDQU,  OP_PARM_Vx,    OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3731    OPVEX("vmovdqu %Vx,%Wx",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVDQU,         OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    37273732
    37283733    /* 7 */
    3729     OPVEX("vpshufhw %Vx,%Wx,%Ib",     IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,           0,  OP_VPSHUFHW, OP_PARM_Vx,    OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3730     INVALID_OPCODE,
    3731     INVALID_OPCODE,
    3732     INVALID_OPCODE,
    3733     INVALID_OPCODE,
    3734     INVALID_OPCODE,
    3735     INVALID_OPCODE,
    3736     INVALID_OPCODE,
    3737     INVALID_OPCODE,
    3738     INVALID_OPCODE,
    3739     INVALID_OPCODE,
    3740     INVALID_OPCODE,
    3741     INVALID_OPCODE,
    3742     INVALID_OPCODE,
    3743     OPVEX("vmovq %Vq,%Wq",            IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_MOVQ,    OP_PARM_Vq,    OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3744     OPVEX("vmovdqu %Wx,%Vx",          IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_MOVDQU,  OP_PARM_Wx,    OP_PARM_Vx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3745 
    3746     /* 8 */
     3734    OPVEX("vpshufhw %Vx,%Wx,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPSHUFHW,        OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3735    INVALID_OPCODE,
     3736    INVALID_OPCODE,
     3737    INVALID_OPCODE,
     3738    INVALID_OPCODE,
     3739    INVALID_OPCODE,
     3740    INVALID_OPCODE,
     3741    INVALID_OPCODE,
     3742    INVALID_OPCODE,
     3743    INVALID_OPCODE,
     3744    INVALID_OPCODE,
     3745    INVALID_OPCODE,
     3746    INVALID_OPCODE,
     3747    INVALID_OPCODE,
     3748    OPVEX("vmovq %Vq,%Wq",                  IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVQ,           OP_PARM_Vq,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3749    OPVEX("vmovdqu %Wx,%Vx",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVDQU,         OP_PARM_Wx,   OP_PARM_Vx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3750
     3751    /* 8   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    37473752    INVALID_OPCODE_BLOCK
    37483753
     
    37593764    INVALID_OPCODE,
    37603765    INVALID_OPCODE,
    3761     OPVEX("vcmpps %Vss,%Hss,%Wss,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_CMPSS, OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_Ib,    DISOPTYPE_HARMLESS),
     3766    OPVEX("vcmpps %Vss,%Hss,%Wss,%Ib",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VCMPSS,          OP_PARM_Vss,  OP_PARM_Hss,  OP_PARM_Wss,  OP_PARM_Ib,    DISOPTYPE_HARMLESS),
    37623767    INVALID_OPCODE,
    37633768    INVALID_OPCODE,
     
    37843789    INVALID_OPCODE,
    37853790    INVALID_OPCODE,
    3786     OPVEX("vcvtdq2pd %Vx,%Wpd",     IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_CVTDQ2PD,  OP_PARM_Vx,   OP_PARM_Wpd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3791    OPVEX("vcvtdq2pd %Vx,%Wpd",             IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VCVTDQ2PD,       OP_PARM_Vx,   OP_PARM_Wpd,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3792    /*     format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    37873793};
    37883794const DISOPMAPDESC g_DisasVexMap1F3Range = { &g_aDisasVexMap1F3[0], 0x10, RT_ELEMENTS(g_aDisasVexMap1F3) };
     
    37913797const DISOPCODE g_aMapX86_Group17[8*2] =
    37923798{
     3799    /* 0   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    37933800    INVALID_OPCODE_MOD_RM(0x00),
    37943801    INVALID_OPCODE_MOD_RM(0x01),
    3795     OPVEX("blsr %By,%Ey",        IDX_ParseVexDest,  IDX_ParseModRM,     0,                           0,  OP_BLSR,      OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3802    OPVEX("blsr %By,%Ey",                   IDX_ParseVexDest,   IDX_ParseModRM,     0,                  0,                  OP_BLSR,            OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    37963803    INVALID_OPCODE_MOD_RM(0x03),
    3797     OPVEX("blsmsk %By,%Ey",      IDX_ParseVexDest,  IDX_ParseModRM,     0,                           0,  OP_BLSMSK,    OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3804    OPVEX("blsmsk %By,%Ey",                 IDX_ParseVexDest,   IDX_ParseModRM,     0,                  0,                  OP_BLSMSK,          OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    37983805    INVALID_OPCODE_MOD_RM(0x05),
    3799     OPVEX("blsi %By,%Ey",        IDX_ParseVexDest,  IDX_ParseModRM,     0,                           0,  OP_BLSI,      OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3806    OPVEX("blsi %By,%Ey",                   IDX_ParseVexDest,   IDX_ParseModRM,     0,                  0,                  OP_BLSI,            OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38003807    INVALID_OPCODE_MOD_RM(0x07),
    38013808    INVALID_OPCODE_MOD_RM(0x08),
     
    38123819{
    38133820    /** @todo vsha1nexte at 0xc8 + ? */
    3814     OPVEX("andn %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_ANDN,      OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3815     OPVEX("vgroup17",            IDX_ParseGrp17,    0,                  0,                           0,  OP_GRP17,     OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3816     INVALID_OPCODE,
    3817     OPVEX("bzhi %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_BZHI,      OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3818     INVALID_OPCODE,
    3819     OPVEX("bextr %Gy,%By,%Ey",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_BEXTR,     OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3821    /* 0xf2 format string,                  parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3822    OPVEX("andn %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_ANDN,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3823    OPVEX("vgroup17",                       IDX_ParseGrp17,     0,                  0,                  0,                  OP_GRP17,           OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3824    INVALID_OPCODE,
     3825    OPVEX("bzhi %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_BZHI,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3826    INVALID_OPCODE,
     3827    OPVEX("bextr %Gy,%By,%Ey",              IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_BEXTR,           OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38203828};
    38213829const DISOPMAPDESC g_DisasVexMap2Range = { &g_aDisasVexMap2[0], 0xf2, RT_ELEMENTS(g_aDisasVexMap2) };
     
    38233831static const DISOPCODE g_aDisasVexMap2F3[] =
    38243832{
    3825     /* 0xf5: */
    3826     OPVEX("pext %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PEXT,      OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3827     INVALID_OPCODE,
    3828     OPVEX("sarx %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_SARX,      OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3833    /* 0xf5 format string,                  parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3834    OPVEX("pext %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_PEXT,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3835    INVALID_OPCODE,
     3836    OPVEX("sarx %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_SARX,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38293837};
    38303838const DISOPMAPDESC g_DisasVexMap2F3Range = { &g_aDisasVexMap2F3[0], 0xf5, RT_ELEMENTS(g_aDisasVexMap2F3) };
     
    38323840static const DISOPCODE g_aDisasVexMap2F2[] =
    38333841{
    3834     /* 0xf5: */
    3835     OPVEX("pdep %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PDEP,      OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3836     OPVEX("mulx %By,%Gy,%Ey",    IDX_ParseVexDest,  IDX_ParseModRM,     IDX_UseModRM,                0,  OP_MULX,      OP_PARM_By,   OP_PARM_Gy,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3837     OPVEX("shrx %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_SHRX,      OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3842    /* 0xf5 format string,                  parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3843    OPVEX("pdep %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_PDEP,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3844    OPVEX("mulx %By,%Gy,%Ey",               IDX_ParseVexDest,   IDX_ParseModRM,     IDX_UseModRM,       0,                  OP_MULX,            OP_PARM_By,   OP_PARM_Gy,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3845    OPVEX("shrx %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_SHRX,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38383846};
    38393847const DISOPMAPDESC g_DisasVexMap2F2Range = { &g_aDisasVexMap2F2[0], 0xf5, RT_ELEMENTS(g_aDisasVexMap2F2) };
     
    38413849static const DISOPCODE g_aDisasVexMap2_66[] =
    38423850{
    3843     /* 0 */
    3844     OPVEX("vpshufb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPSHUFB,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3845     OPVEX("vphaddw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PHADDW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3846     OPVEX("vphaddd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PHADDD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3847     OPVEX("vphaddsw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PHADDSW,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3848     OPVEX("vpmaddubsw %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMADDUBSW, OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3849     OPVEX("vphsubw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PHSUBW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3850     OPVEX("vphsubd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PHSUBD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3851     OPVEX("vphsubsw %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PHSUBSW,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3852     OPVEX("vpsignb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSIGNB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3853     OPVEX("vpsignw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSIGNW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3854     OPVEX("vpsignd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSIGND,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3855     OPVEX("vpmulhrsw %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULHRSW,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3856     OPVEX("vpermilps %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PERMILPS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3857     OPVEX("vpermilpd %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PERMILPD,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3858     OPVEX("vtestps %Vx,%Wx",           IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_TESTPS,    OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3859     OPVEX("vtestpd %Vx,%Wx",           IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_TESTPD,    OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3851    /* 0   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3852    OPVEX("vpshufb %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSHUFB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3853    OPVEX("vphaddw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPHADDW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3854    OPVEX("vphaddd %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPHADDD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3855    OPVEX("vphaddsw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPHADDSW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3856    OPVEX("vpmaddubsw %Vx,%Hx,%Wx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMADDUBSW,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3857    OPVEX("vphsubw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPHSUBW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3858    OPVEX("vphsubd %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPHSUBD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3859    OPVEX("vphsubsw %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPHSUBSW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3860    OPVEX("vpsignb %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSIGNB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3861    OPVEX("vpsignw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSIGNW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3862    OPVEX("vpsignd %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPSIGND,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3863    OPVEX("vpmulhrsw %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULHRSW,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3864    OPVEX("vpermilps %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPERMILPS,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3865    OPVEX("vpermilpd %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPERMILPD,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3866    OPVEX("vtestps %Vx,%Wx",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VTESTPS,         OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3867    OPVEX("vtestpd %Vx,%Wx",                IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VTESTPD,         OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38603868
    38613869    /* 1 */
     
    38633871    INVALID_OPCODE,
    38643872    INVALID_OPCODE,
    3865     OPVEX("vcvtph2ps %Vx,%Wx,%Ib",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseImmByte,            0,  OP_CVTPH2PS,  OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3866     INVALID_OPCODE,
    3867     INVALID_OPCODE,
    3868     OPVEX("vpermps %Vqq,%Hqq,%Wqq",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PERMPS,    OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3869     OPVEX("vptest %Vx,%Wx",            IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PTEST,     OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3870     OPVEX("vbroadcastss %Vx,%Wd",      IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_BROADCASTSS, OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3871     OPVEX("vbroadcastsd %Vqq,%Wq",     IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_BROADCASTSD, OP_PARM_Vqq,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3872     OPVEX("vbroadcastf128 %Vqq,%Mdq",  IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_BROADCASTF128, OP_PARM_Vqq,   OP_PARM_Wdq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3873     INVALID_OPCODE,
    3874     OPVEX("vpabsb %Vx,%Wx",            IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PABSB,     OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3875     OPVEX("vpabsw %Vx,%Wx",            IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PABSW,     OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3876     OPVEX("vpabsd %Vx,%Wx",            IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PABSD,     OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3873    OPVEX("vcvtph2ps %Vx,%Wx,%Ib",          IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VCVTPH2PS,       OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3874    INVALID_OPCODE,
     3875    INVALID_OPCODE,
     3876    OPVEX("vpermps %Vqq,%Hqq,%Wqq",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPERMPS,         OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3877    OPVEX("vptest %Vx,%Wx",                 IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPTEST,          OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3878    OPVEX("vbroadcastss %Vx,%Wd",           IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VBROADCASTSS,    OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3879    OPVEX("vbroadcastsd %Vqq,%Wq",          IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VBROADCASTSD,    OP_PARM_Vqq,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3880    OPVEX("vbroadcastf128 %Vqq,%Mdq",       IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VBROADCASTF128, OP_PARM_Vqq,   OP_PARM_Wdq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3881    INVALID_OPCODE,
     3882    OPVEX("vpabsb %Vx,%Wx",                 IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPABSB,          OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3883    OPVEX("vpabsw %Vx,%Wx",                 IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPABSW,          OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3884    OPVEX("vpabsd %Vx,%Wx",                 IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPABSD,          OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38773885    INVALID_OPCODE,
    38783886
    38793887    /* 2 */
    3880     OPVEX("vpmovsxbw %Vx,%Wq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVSX,    OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3881     OPVEX("vpmovsxbd %Vx,%Wd",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVSX,    OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3882     OPVEX("vpmovsxbq %Vx,%Ww",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVSX,    OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3883     OPVEX("vpmovsxwd %Vx,%Wq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVSX,    OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3884     OPVEX("vpmovsxwq %Vx,%Wd",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVSX,    OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3885     OPVEX("vpmovsxdq %Vx,%Wq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVSX,    OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3886     INVALID_OPCODE,
    3887     INVALID_OPCODE,
    3888     OPVEX("vpmuldq %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULDQ,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3889     OPVEX("vpcmpeqq %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPCMPEQQ,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3890     OPVEX("vmovntdqa %Vx,%Wx",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_MOVNTDQA,  OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3891     OPVEX("vpackusdw %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPACKUSDW, OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3892     OPVEX("vmaskmovps %Vx,%Hx,%Mx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MASKMOVPS, OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Mx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3893     OPVEX("vmaskmovpd %Vx,%Hx,%Mx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MASKMOVPD, OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Mx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3894     OPVEX("vmaskmovps %Mx,%Hx,%Vx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MASKMOVPS, OP_PARM_Mx,   OP_PARM_Hx,   OP_PARM_Vx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3895     OPVEX("vmaskmovpd %Mx,%Hx,%Vx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_MASKMOVPD, OP_PARM_Mx,   OP_PARM_Hx,   OP_PARM_Vx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3888    OPVEX("vpmovsxbw %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX,         OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3889    OPVEX("vpmovsxbd %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX,         OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3890    OPVEX("vpmovsxbq %Vx,%Ww",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX,         OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3891    OPVEX("vpmovsxwd %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX,         OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3892    OPVEX("vpmovsxwq %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX,         OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3893    OPVEX("vpmovsxdq %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVSX,         OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3894    INVALID_OPCODE,
     3895    INVALID_OPCODE,
     3896    OPVEX("vpmuldq %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULDQ,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3897    OPVEX("vpcmpeqq %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPEQQ,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3898    OPVEX("vmovntdqa %Vx,%Wx",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VMOVNTDQA,       OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3899    OPVEX("vpackusdw %Vx,%Hx,%Wx",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VVPACKUSDW,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3900    OPVEX("vmaskmovps %Vx,%Hx,%Mx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMASKMOVPS,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Mx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3901    OPVEX("vmaskmovpd %Vx,%Hx,%Mx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMASKMOVPD,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Mx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3902    OPVEX("vmaskmovps %Mx,%Hx,%Vx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMASKMOVPS,      OP_PARM_Mx,   OP_PARM_Hx,   OP_PARM_Vx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3903    OPVEX("vmaskmovpd %Mx,%Hx,%Vx",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VMASKMOVPD,      OP_PARM_Mx,   OP_PARM_Hx,   OP_PARM_Vx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    38963904
    38973905    /* 3 */
    3898     OPVEX("vpmovzxbw %Vx,%Wq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVZX,    OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3899     OPVEX("vpmovzxbd %Vx,%Wd",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVZX,    OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3900     OPVEX("vpmovzxbq %Vx,%Ww",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVZX,    OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3901     OPVEX("vpmovzxwd %Vx,%Wq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVZX,    OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3902     OPVEX("vpmovzxwq %Vx,%Wd",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVZX,    OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3903     OPVEX("vpmovzxdq %Vx,%Wq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PMOVZX,    OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3904     OPVEX("vpermd %Vqq,%Hqq,%Wqq",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PERMD,     OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3905     OPVEX("vpcmpgtq %Vx,%Hx,%Wx",      IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_VPCMPGTQ,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3906     OPVEX("vpminsb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMINSB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3907     OPVEX("vpminsd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMINSB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3908     OPVEX("vpminuw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMINUW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3909     OPVEX("vpminud %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMINUD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3910     OPVEX("vpmaxsb %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMAXSB,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3911     OPVEX("vpmaxsd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMAXSD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3912     OPVEX("vpmaxuw %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMAXUW,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3913     OPVEX("vpmaxud %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMAXUD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3906    OPVEX("vpmovzxbw %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX,         OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3907    OPVEX("vpmovzxbd %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX,         OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3908    OPVEX("vpmovzxbq %Vx,%Ww",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX,         OP_PARM_Vx,   OP_PARM_Ww,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3909    OPVEX("vpmovzxwd %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX,         OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3910    OPVEX("vpmovzxwq %Vx,%Wd",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX,         OP_PARM_Vx,   OP_PARM_Wd,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3911    OPVEX("vpmovzxdq %Vx,%Wq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPMOVZX,         OP_PARM_Vx,   OP_PARM_Wq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3912    OPVEX("vpermd %Vqq,%Hqq,%Wqq",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPERMD,          OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3913    OPVEX("vpcmpgtq %Vx,%Hx,%Wx",           IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPCMPGTQ,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3914    OPVEX("vpminsb %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMINSB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3915    OPVEX("vpminsd %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMINSB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3916    OPVEX("vpminuw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMINUW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3917    OPVEX("vpminud %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMINUD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3918    OPVEX("vpmaxsb %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMAXSB,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3919    OPVEX("vpmaxsd %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMAXSD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3920    OPVEX("vpmaxuw %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMAXUW,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3921    OPVEX("vpmaxud %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMAXUD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    39143922
    39153923    /* 4 */
    3916     OPVEX("vpmulld %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMULLD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3917     OPVEX("vphminposuw %Vdq,%Wdq",     IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PHMINPOSUW,OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3918     INVALID_OPCODE,
    3919     INVALID_OPCODE,
    3920     INVALID_OPCODE,
    3921     OPVEX("#vpsrlvd/vpsrlvq %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRLVD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3922     OPVEX("vpsravd %Vx,%Hx,%Wx",       IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSRAVD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3923     OPVEX("#vpsllvd/vpsllvq %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PSLLVD,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3924    OPVEX("vpmulld %Vx,%Hx,%Wx",            IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMULLD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3925    OPVEX("vphminposuw %Vdq,%Wdq",          IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VPHMINPOSUW,     OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3926    INVALID_OPCODE,
     3927    INVALID_OPCODE,
     3928    INVALID_OPCODE,
     3929    OPVEX("#vpsrlvd/vpsrlvq %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,        0,                  OP_VPSRLVD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3930    OPVEX("vpsravd %Vx,%Hx,%Wx",            IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,        0,                  OP_VPSRAVD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3931    OPVEX("#vpsllvd/vpsllvq %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,        0,                  OP_VPSLLVD,         OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    39243932    INVALID_OPCODE,
    39253933    INVALID_OPCODE,
     
    39403948    INVALID_OPCODE,
    39413949    INVALID_OPCODE,
    3942     OPVEX("vpbroadcastd %Vx,%Wx",      IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PBROADCASTD, OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3943     OPVEX("vpbroadcastq %Vx,%Wx",      IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PBROADCASTQ, OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3944     OPVEX("vpbroadcasti128 %Vqq,%Mdq", IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PBROADCASTI128, OP_PARM_Vqq,   OP_PARM_Mdq,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3950    OPVEX("vpbroadcastd %Vx,%Wx",           IDX_ParseModRM,    IDX_UseModRM,       0,                           0,          OP_VPBROADCASTD,    OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3951    OPVEX("vpbroadcastq %Vx,%Wx",           IDX_ParseModRM,    IDX_UseModRM,       0,                           0,          OP_VPBROADCASTQ,    OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3952    OPVEX("vpbroadcasti128 %Vqq,%Mdq",      IDX_ParseModRM,    IDX_UseModRM,       0,                           0,          OP_VPBROADCASTI128, OP_PARM_Vqq,  OP_PARM_Mdq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    39453953    INVALID_OPCODE,
    39463954    INVALID_OPCODE,
     
    39613969    INVALID_OPCODE,
    39623970    INVALID_OPCODE,
    3963     OPVEX("vpbroadcastb %Vx,%Wx",      IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PBROADCASTB, OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3964     OPVEX("vpbroadcastw %Vx,%Wx",      IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_PBROADCASTW, OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3965     INVALID_OPCODE,
    3966     INVALID_OPCODE,
    3967     INVALID_OPCODE,
    3968     INVALID_OPCODE,
    3969     INVALID_OPCODE,
    3970     INVALID_OPCODE,
    3971 
    3972     /* 8 */
    3973     INVALID_OPCODE,
    3974     INVALID_OPCODE,
    3975     INVALID_OPCODE,
    3976     INVALID_OPCODE,
    3977     INVALID_OPCODE,
    3978     INVALID_OPCODE,
    3979     INVALID_OPCODE,
    3980     INVALID_OPCODE,
    3981     INVALID_OPCODE,
    3982     INVALID_OPCODE,
    3983     INVALID_OPCODE,
    3984     INVALID_OPCODE,
    3985     OPVEX("#vpmaskmovd/vpmaskmovq %Vx,%Hx,%Mx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_PMASKMOVD, OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Mx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    3986     INVALID_OPCODE,
    3987     OPVEX("#vpmaskmovd/vpmaskmovq %Mx,%Vx,%Hx",    IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseVexDest,                0,  OP_PMASKMOVD, OP_PARM_Mx,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3971    OPVEX("vpbroadcastb %Vx,%Wx",           IDX_ParseModRM,    IDX_UseModRM,       0,                           0,          OP_VPBROADCASTB,    OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3972    OPVEX("vpbroadcastw %Vx,%Wx",           IDX_ParseModRM,    IDX_UseModRM,       0,                           0,          OP_VPBROADCASTW,    OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3973    INVALID_OPCODE,
     3974    INVALID_OPCODE,
     3975    INVALID_OPCODE,
     3976    INVALID_OPCODE,
     3977    INVALID_OPCODE,
     3978    INVALID_OPCODE,
     3979
     3980    /* 8   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     3981    INVALID_OPCODE,
     3982    INVALID_OPCODE,
     3983    INVALID_OPCODE,
     3984    INVALID_OPCODE,
     3985    INVALID_OPCODE,
     3986    INVALID_OPCODE,
     3987    INVALID_OPCODE,
     3988    INVALID_OPCODE,
     3989    INVALID_OPCODE,
     3990    INVALID_OPCODE,
     3991    INVALID_OPCODE,
     3992    INVALID_OPCODE,
     3993    OPVEX("#vpmaskmovd/vpmaskmovq %Vx,%Hx,%Mx",IDX_ParseModRM,  IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VPMASKMOVD,      OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Mx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     3994    INVALID_OPCODE,
     3995    OPVEX("#vpmaskmovd/vpmaskmovq %Mx,%Vx,%Hx",IDX_ParseModRM,  IDX_UseModRM,       IDX_ParseVexDest,   0,                  OP_VPMASKMOVD,      OP_PARM_Mx,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    39883996    INVALID_OPCODE,
    39893997
     
    40004008     * otherwise name1.
    40014009     */
    4002     OPVEX("#vpgatherdd/vpgatherdq %Vx,%My,%Hx",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseVexDest,  0,  OP_GATHER,  OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4003     OPVEX("#vpgatherqd/vpgatherqq %Vx,%My,%Hx",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseVexDest,  0,  OP_GATHER,  OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4004     OPVEX("#vgatherdps/vgatherdpd %Vx,%My,%Hx",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseVexDest,  0,  OP_GATHER,  OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4005     OPVEX("#vgatherqps/vgatherqpd %Vx,%My,%Hx",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseVexDest,  0,  OP_GATHER,  OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4006     INVALID_OPCODE,
    4007     INVALID_OPCODE,
    4008     OPVEX("#vfmaddsub132ps/vfmaddsub132pd %Vx,%Hx,%Wx", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADDSUB132PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4009     OPVEX("#vfmsubadd132ps/vfmsubadd132pd %Vx,%Hx,%Wx", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUBADD132PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4010     OPVEX("#vfmadd132ps/vfmadd132pd %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADD132PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4011     OPVEX("#vfmadd132ss/vfmadd132sd %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADD132SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4012     OPVEX("#vfmsub132ps/vfmsub132pd %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUB132PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4013     OPVEX("#vfmsub132ss/vfmsub132sd %Vx,%Hx,%Wx",     IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUB132SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4014     OPVEX("#vfnmadd132ps/vfnmadd132pd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMADD132PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4015     OPVEX("#vfnmadd132ss/vfnmadd132sd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMADD132SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4016     OPVEX("#vfnmsub132ps/vfnmsub132pd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMSUB132PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4017     OPVEX("#vfnmsub132ss/vfnmsub132sd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMSUB132SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4010    OPVEX("#vpgatherdd/vpgatherdq %Vx,%My,%Hx", IDX_ParseModRM, IDX_UseModRM,       IDX_ParseVexDest,   0,                  OP_VGATHER,         OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4011    OPVEX("#vpgatherqd/vpgatherqq %Vx,%My,%Hx", IDX_ParseModRM, IDX_UseModRM,       IDX_ParseVexDest,   0,                  OP_VGATHER,         OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4012    OPVEX("#vgatherdps/vgatherdpd %Vx,%My,%Hx", IDX_ParseModRM, IDX_UseModRM,       IDX_ParseVexDest,   0,                  OP_VGATHER,         OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4013    OPVEX("#vgatherqps/vgatherqpd %Vx,%My,%Hx", IDX_ParseModRM, IDX_UseModRM,       IDX_ParseVexDest,   0,                  OP_VGATHER,         OP_PARM_Vx,   OP_PARM_My,   OP_PARM_Hx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4014    INVALID_OPCODE,
     4015    INVALID_OPCODE,
     4016    OPVEX("#vfmaddsub132ps/vfmaddsub132pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM, 0,                  OP_VFMADDSUB132PS,  OP_PARM_Vx,  OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4017    OPVEX("#vfmsubadd132ps/vfmsubadd132pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM, 0,                  OP_VFMSUBADD132PS,  OP_PARM_Vx,  OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4018    OPVEX("#vfmadd132ps/vfmadd132pd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VFMADD132PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4019    OPVEX("#vfmadd132ss/vfmadd132sd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VFMADD132SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4020    OPVEX("#vfmsub132ps/vfmsub132pd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VFMSUB132PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4021    OPVEX("#vfmsub132ss/vfmsub132sd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VFMSUB132SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4022    OPVEX("#vfnmadd132ps/vfnmadd132pd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMADD132PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4023    OPVEX("#vfnmadd132ss/vfnmadd132sd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMADD132SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4024    OPVEX("#vfnmsub132ps/vfnmsub132pd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMSUB132PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4025    OPVEX("#vfnmsub132ss/vfnmsub132sd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMSUB132SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    40184026
    40194027    /* a */
     
    40244032    INVALID_OPCODE,
    40254033    INVALID_OPCODE,
    4026     OPVEX("#vfmaddsub213ps/vfmaddsub213pd %Vx,%Hx,%Wx", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADDSUB213PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4027     OPVEX("#vfmsubadd213ps/vfmsubadd213pd %Vx,%Hx,%Wx", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUBADD213PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4028     OPVEX("#vfmadd213ps/vfmadd213pd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADD213PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4029     OPVEX("#vfmadd213ss/vfmadd213sd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADD213SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4030     OPVEX("#vfmsub213ps/vfmsub213pd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUB213PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4031     OPVEX("#vfmsub213ss/vfmsub213sd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUB213SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4032     OPVEX("#vfnmadd213ps/vfnmadd213pd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMADD213PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4033     OPVEX("#vfnmadd213ss/vfnmadd213sd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMADD213SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4034     OPVEX("#vfnmsub213ps/vfnmsub213pd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMSUB213PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4035     OPVEX("#vfnmsub213ss/vfnmsub213sd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMSUB213SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4034    OPVEX("#vfmaddsub213ps/vfmaddsub213pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM, 0,                  OP_VFMADDSUB213PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4035    OPVEX("#vfmsubadd213ps/vfmsubadd213pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM, 0,                  OP_VFMSUBADD213PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4036    OPVEX("#vfmadd213ps/vfmadd213pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMADD213PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4037    OPVEX("#vfmadd213ss/vfmadd213sd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMADD213SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4038    OPVEX("#vfmsub213ps/vfmsub213pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMSUB213PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4039    OPVEX("#vfmsub213ss/vfmsub213sd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMSUB213SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4040    OPVEX("#vfnmadd213ps/vfnmadd213pd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMADD213PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4041    OPVEX("#vfnmadd213ss/vfnmadd213sd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMADD213SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4042    OPVEX("#vfnmsub213ps/vfnmsub213pd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMSUB213PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4043    OPVEX("#vfnmsub213ss/vfnmsub213sd %Vx,%Hx,%Wx",IDX_ParseModRM,IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFNMSUB213SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    40364044
    40374045    /* b */
     
    40424050    INVALID_OPCODE,
    40434051    INVALID_OPCODE,
    4044     OPVEX("#vfmaddsub231ps/vfmaddsub231pd %Vx,%Hx,%Wx", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADDSUB231PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4045     OPVEX("#vfmsubadd231ps/vfmsubadd231pd %Vx,%Hx,%Wx", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUBADD231PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4046     OPVEX("#vfmadd231ps/vfmadd231pd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADD231PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4047     OPVEX("#vfmadd231ss/vfmadd231sd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMADD231SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4048     OPVEX("#vfmsub231ps/vfmsub231pd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUB231PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4049     OPVEX("#vfmsub231ss/vfmsub231sd %Vx,%Hx,%Wx",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FMSUB231SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4050     OPVEX("#vfnmadd231ps/vfnmadd231pd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMADD231PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4051     OPVEX("#vfnmadd231ss/vfnmadd231sd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMADD231SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4052     OPVEX("#vfnmsub231ps/vfnmsub231pd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMSUB231PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4053     OPVEX("#vfnmsub231ss/vfnmsub231sd %Vx,%Hx,%Wx",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,  OP_FNMSUB231SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4052    OPVEX("#vfmaddsub231ps/vfmaddsub231pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM, 0,                  OP_VFMADDSUB231PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4053    OPVEX("#vfmsubadd231ps/vfmsubadd231pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM, 0,                  OP_VFMSUBADD231PS,  OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4054    OPVEX("#vfmadd231ps/vfmadd231pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMADD231PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4055    OPVEX("#vfmadd231ss/vfmadd231sd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMADD231SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4056    OPVEX("#vfmsub231ps/vfmsub231pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMSUB231PS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4057    OPVEX("#vfmsub231ss/vfmsub231sd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,       0,                  OP_VFMSUB231SS,     OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4058    OPVEX("#vfnmadd231ps/vfnmadd231pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,     0,                  OP_VFNMADD231PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4059    OPVEX("#vfnmadd231ss/vfnmadd231sd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,     0,                  OP_VFNMADD231SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4060    OPVEX("#vfnmsub231ps/vfnmsub231pd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,     0,                  OP_VFNMSUB231PS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4061    OPVEX("#vfnmsub231ss/vfnmsub231sd %Vx,%Hx,%Wx", IDX_ParseModRM, IDX_ParseVexDest, IDX_UseModRM,     0,                  OP_VFNMSUB231SS,    OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    40544062
    40554063    /* c */
     
    40684076    INVALID_OPCODE,
    40694077    INVALID_OPCODE,
    4070     OPVEX("vaesimc %Vdq,%Wdq",         IDX_ParseModRM,    IDX_UseModRM,       0,                           0,  OP_AESIMC,    OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4071     OPVEX("vaesenc %Vdq,%Hdq,%Wdq",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_AESENC,    OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4072     OPVEX("vaesenclast %Vdq,%Hdq,%Wdq",IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_AESENCLAST,OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4073     OPVEX("vaesdec %Vdq,%Hdq,%Wdq",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_AESDEC,    OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4074     OPVEX("vaesdeclast %Vdq,%Hdq,%Wdq",IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,                0,  OP_AESDECLAST,OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4078    OPVEX("vaesimc %Vdq,%Wdq",              IDX_ParseModRM,     IDX_UseModRM,       0,                  0,                  OP_VAESIMC,         OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4079    OPVEX("vaesenc %Vdq,%Hdq,%Wdq",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VAESENC,         OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4080    OPVEX("vaesenclast %Vdq,%Hdq,%Wdq",     IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VAESENCLAST,     OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4081    OPVEX("vaesdec %Vdq,%Hdq,%Wdq",         IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VAESDEC,         OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4082    OPVEX("vaesdeclast %Vdq,%Hdq,%Wdq",     IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_VAESDECLAST,     OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    40754083
    40764084    /* e */
     
    40854093    INVALID_OPCODE,
    40864094    INVALID_OPCODE,
    4087     OPVEX("shlx %Gy,%By,%Ey",    IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,  0,   OP_SHLX,   OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey, OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4095    OPVEX("shlx %Gy,%By,%Ey",               IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       0,                  OP_SHLX,            OP_PARM_Gy,   OP_PARM_By,   OP_PARM_Ey,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4096    /*     format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
    40884097};
    40894098const DISOPMAPDESC g_DisasVexMap2_66Range = { &g_aDisasVexMap2_66[0], 0x00, RT_ELEMENTS(g_aDisasVexMap2_66) };
     
    40974106static const DISOPCODE g_aDisasVexMap3_66[] =
    40984107{
    4099     /* 0 */
    4100     OPVEX("vpermq %Vqq,%Wqq,%Ib",     IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_PERMQ,     OP_PARM_Vqq,  OP_PARM_Wqq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4101     OPVEX("vpermpd %Vqq,%Wqq,%Ib",    IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_PERMPD,    OP_PARM_Vqq,  OP_PARM_Wqq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4102     OPVEX("vpblendd %Vx,%Hx,%Wx,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PBLENDD,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    4103     INVALID_OPCODE,
    4104     OPVEX("vpermilps %Vx,%Wx,%Ib",    IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_PERMILPS,  OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4105     OPVEX("vpermilpd %Vx,%Wx,%Ib",    IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_PERMILPD,  OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4106     OPVEX("vperm2f128 %Vqq,%Hqq,%Wqq,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PERM2F128,   OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,   OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4107     INVALID_OPCODE,
    4108     OPVEX("vroundps %Vx,%Wx,%Ib",     IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_ROUNDPS,   OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4109     OPVEX("vroundpd %Vx,%Wx,%Ib",     IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_ROUNDPD,   OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4110     OPVEX("vroundss %Vss,%Wss,%Ib",   IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_ROUNDSS,   OP_PARM_Vss,  OP_PARM_Wss,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4111     OPVEX("vroundsd %Vsd,%Wsd,%Ib",   IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_ROUNDSD,   OP_PARM_Vsd,  OP_PARM_Wsd,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4112     OPVEX("vblendps %Vx,%Hx,%Wx,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_BLENDPS,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    4113     OPVEX("vblendpd %Vx,%Hx,%Wx,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_BLENDPD,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    4114     OPVEX("vpblendw %Vx,%Hx,%Wx,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PBLENDW,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    4115     OPVEX("vpalignr %Vx,%Hx,%Wx,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PALIGNR,   OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4108    /* 0   format string,                   parse param #1,     parse param #2,     parse param #3,     parse param #4,     opcode,             param #1,     param #2,     param #3,     param #4,     flags */
     4109    OPVEX("vpermq %Vqq,%Wqq,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPERMQ,          OP_PARM_Vqq,  OP_PARM_Wqq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4110    OPVEX("vpermpd %Vqq,%Wqq,%Ib",          IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPERMPD,         OP_PARM_Vqq,  OP_PARM_Wqq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4111    OPVEX("vpblendd %Vx,%Hx,%Wx,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPBLENDD,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4112    INVALID_OPCODE,
     4113    OPVEX("vpermilps %Vx,%Wx,%Ib",          IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPERMILPS,       OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4114    OPVEX("vpermilpd %Vx,%Wx,%Ib",          IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPERMILPD,       OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4115    OPVEX("vperm2f128 %Vqq,%Hqq,%Wqq,%Ib",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPERM2F128,      OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4116    INVALID_OPCODE,
     4117    OPVEX("vroundps %Vx,%Wx,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VROUNDPS,        OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4118    OPVEX("vroundpd %Vx,%Wx,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VROUNDPD,        OP_PARM_Vx,   OP_PARM_Wx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4119    OPVEX("vroundss %Vss,%Wss,%Ib",         IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VROUNDSS,        OP_PARM_Vss,  OP_PARM_Wss,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4120    OPVEX("vroundsd %Vsd,%Wsd,%Ib",         IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VROUNDSD,        OP_PARM_Vsd,  OP_PARM_Wsd,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4121    OPVEX("vblendps %Vx,%Hx,%Wx,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VBLENDPS,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4122    OPVEX("vblendpd %Vx,%Hx,%Wx,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VBLENDPD,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4123    OPVEX("vpblendw %Vx,%Hx,%Wx,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPBLENDW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4124    OPVEX("vpalignr %Vx,%Hx,%Wx,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPALIGNR,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    41164125
    41174126    /* 1 */
     
    41214130    INVALID_OPCODE,
    41224131    // vpextrb %Rd/Mb,%Vdq,%Ib
    4123     OPVEX("vpextrb %Eb,%Vdq,%Ib",     IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_PEXTRB,    OP_PARM_Eb,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4132    OPVEX("vpextrb %Eb,%Vdq,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPEXTRB,         OP_PARM_Eb,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    41244133    // vpextrw %Rd/Mw,%Vdq,%Ib
    4125     OPVEX("vpextrw %Ew,%Vdq,%Ib",     IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_PEXTRW,    OP_PARM_Ew,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4126     OPVEX("#vpextrd/vpextrq %Ey,%Vdq,%Ib",   IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,     0,     OP_PEXTRD,    OP_PARM_Ey,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4127     OPVEX("vextractps %Ed,%Vdq,%Ib",  IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_EXTRACTPS, OP_PARM_Ed,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4128     OPVEX("vinsertf128 %Vqq,%Hqq,%Wqq,%Ib",   IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_INSERTF128,   OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,   OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4129     OPVEX("vextractf128 %Wdq,%Vqq,%Ib",IDX_ParseModRM,   IDX_UseModRM,        IDX_ParseImmByte,    0,            OP_EXTRACTF128, OP_PARM_Eb,  OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4130     INVALID_OPCODE,
    4131     INVALID_OPCODE,
    4132     INVALID_OPCODE,
    4133     OPVEX("vcvtps2ph %Wx,%Vx,%Ib",    IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,    0,             OP_CVTPS2PH,  OP_PARM_Wx,   OP_PARM_Vx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4134    OPVEX("vpextrw %Ew,%Vdq,%Ib",           IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPEXTRW,         OP_PARM_Ew,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4135    OPVEX("#vpextrd/vpextrq %Ey,%Vdq,%Ib",  IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPEXTRD,         OP_PARM_Ey,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4136    OPVEX("vextractps %Ed,%Vdq,%Ib",        IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VEXTRACTPS,      OP_PARM_Ed,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4137    OPVEX("vinsertf128 %Vqq,%Hqq,%Wqq,%Ib", IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VINSERTF128,     OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4138    OPVEX("vextractf128 %Wdq,%Vqq,%Ib",     IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VEXTRACTF128,    OP_PARM_Eb,   OP_PARM_Vdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4139    INVALID_OPCODE,
     4140    INVALID_OPCODE,
     4141    INVALID_OPCODE,
     4142    OPVEX("vcvtps2ph %Wx,%Vx,%Ib",          IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VCVTPS2PH,       OP_PARM_Wx,   OP_PARM_Vx,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    41344143    INVALID_OPCODE,
    41354144    INVALID_OPCODE,
     
    41374146    /* 2 */
    41384147    // vpinsrb %Vdq,%Hdq,%Ry/Mb,%Ib
    4139     OPVEX("vpinsrb %Vdq,%Hdq,%Eb,%Ib",   IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_PINSRB,  OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Eb,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4148    OPVEX("vpinsrb %Vdq,%Hdq,%Eb,%Ib",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPINSRB,         OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Eb,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    41404149    // vinsertps %Vdq,%Hdq,%Udq/Md,%Ib
    4141     OPVEX("vinsertps %Vdq,%Hdq,%Wd,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_INSERTPS,  OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wd,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    4142     OPVEX("#vpinsrd/vpinsrq %Vdq,%Hdq,%Ey,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_PINSRD,    OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Ey,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4150    OPVEX("vinsertps %Vdq,%Hdq,%Wd,%Ib",    IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VINSERTPS,       OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wd,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4151    OPVEX("#vpinsrd/vpinsrq %Vdq,%Hdq,%Ey,%Ib", IDX_ParseModRM, IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPINSRD,         OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Ey,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    41434152    INVALID_OPCODE,
    41444153    INVALID_OPCODE,
     
    41644173    INVALID_OPCODE,
    41654174    INVALID_OPCODE,
    4166     OPVEX("vinserti128 %Vqq,%Hqq,%Wqq,%Ib", IDX_ParseModRM,    IDX_ParseVexDest,   IDX_UseModRM,   IDX_ParseImmByte,  OP_INSERTI128,  OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,   OP_PARM_Ib,   DISOPTYPE_HARMLESS),
    4167     OPVEX("vextracti128 %Wdq,%Vqq,%Ib",     IDX_ParseModRM,    IDX_UseModRM,       IDX_ParseImmByte,   0,             OP_EXTRACTI128, OP_PARM_Wdq,  OP_PARM_Vqq,  OP_PARM_Ib,    OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4175    OPVEX("vinserti128 %Vqq,%Hqq,%Wqq,%Ib", IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VINSERTI128,     OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_Ib,   DISOPTYPE_HARMLESS),
     4176    OPVEX("vextracti128 %Wdq,%Vqq,%Ib",     IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VEXTRACTI128,    OP_PARM_Wdq,  OP_PARM_Vqq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    41684177    INVALID_OPCODE,
    41694178    INVALID_OPCODE,
     
    41744183
    41754184    /* 4 */
    4176     OPVEX("vdpps %Vx,%Hx,%Wx,%Ib",   IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_DPPS,   OP_PARM_Vx,  OP_PARM_Hx,  OP_PARM_Wx,   OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4177     OPVEX("vdppd %Vdq,%Hdq,%Wdq,%Ib",IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_DPPD,   OP_PARM_Vdq, OP_PARM_Hdq, OP_PARM_Wdq,  OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4178     OPVEX("vmpsadbw %Vx,%Hx,%Wx,%Ib",IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_MPSADBW,OP_PARM_Vx,  OP_PARM_Hx,  OP_PARM_Wx,   OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4179     INVALID_OPCODE,
    4180     OPVEX("vpclmulqdq %Vdq,%Hdq,%Wdq,%Ib",IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PCLMULQDQ,   OP_PARM_Vdq, OP_PARM_Hdq, OP_PARM_Wdq,  OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4181     INVALID_OPCODE,
    4182     OPVEX("vperm2i128 %Vqq,%Hqq,%Wqq,%Ib",IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PERM2I128,   OP_PARM_Vqq, OP_PARM_Hqq, OP_PARM_Wqq,  OP_PARM_Ib, DISOPTYPE_HARMLESS),
    4183     INVALID_OPCODE,
    4184     INVALID_OPCODE,
    4185     INVALID_OPCODE,
    4186     OPVEX("vblendvps %Vx,%Hx,%Wx,%Lx",   IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_BLENDVPS,   OP_PARM_Vx,  OP_PARM_Hx,  OP_PARM_Wx,   OP_PARM_Lx, DISOPTYPE_HARMLESS),
    4187     OPVEX("vblendvpd %Vx,%Hx,%Wx,%Lx",   IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_BLENDVPD,   OP_PARM_Vx,  OP_PARM_Hx,  OP_PARM_Wx,   OP_PARM_Lx, DISOPTYPE_HARMLESS),
    4188     OPVEX("vpblendvb %Vx,%Hx,%Wx,%Lx",   IDX_ParseModRM,    IDX_ParseVexDest,    IDX_UseModRM,   IDX_ParseImmByte,   OP_PBLENDVB,    OP_PARM_Vx,  OP_PARM_Hx,  OP_PARM_Wx,   OP_PARM_Lx, DISOPTYPE_HARMLESS),
     4185    OPVEX("vdpps %Vx,%Hx,%Wx,%Ib",          IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VDPPS,           OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4186    OPVEX("vdppd %Vdq,%Hdq,%Wdq,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VDPPD,           OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4187    OPVEX("vmpsadbw %Vx,%Hx,%Wx,%Ib",       IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VMPSADBW,        OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4188    INVALID_OPCODE,
     4189    OPVEX("vpclmulqdq %Vdq,%Hdq,%Wdq,%Ib",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPCLMULQDQ,      OP_PARM_Vdq,  OP_PARM_Hdq,  OP_PARM_Wdq,  OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4190    INVALID_OPCODE,
     4191    OPVEX("vperm2i128 %Vqq,%Hqq,%Wqq,%Ib",  IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPERM2I128,      OP_PARM_Vqq,  OP_PARM_Hqq,  OP_PARM_Wqq,  OP_PARM_Ib,  DISOPTYPE_HARMLESS),
     4192    INVALID_OPCODE,
     4193    INVALID_OPCODE,
     4194    INVALID_OPCODE,
     4195    OPVEX("vblendvps %Vx,%Hx,%Wx,%Lx",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VBLENDVPS,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Lx,  DISOPTYPE_HARMLESS),
     4196    OPVEX("vblendvpd %Vx,%Hx,%Wx,%Lx",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VBLENDVPD,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Lx,  DISOPTYPE_HARMLESS),
     4197    OPVEX("vpblendvb %Vx,%Hx,%Wx,%Lx",      IDX_ParseModRM,     IDX_ParseVexDest,   IDX_UseModRM,       IDX_ParseImmByte,   OP_VPBLENDVB,       OP_PARM_Vx,   OP_PARM_Hx,   OP_PARM_Wx,   OP_PARM_Lx,  DISOPTYPE_HARMLESS),
    41894198    INVALID_OPCODE,
    41904199    INVALID_OPCODE,
     
    41954204
    41964205    /* 6 */
    4197     OPVEX("vpcmpestrm %Vdq,%Wdq,%Ib",   IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseImmByte,   0,   OP_PCMPESTRM,  OP_PARM_Vdq,   OP_PARM_Wdq,   OP_PARM_Ib,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4198     OPVEX("vpcmpestri %Vdq,%Wdq,%Ib",   IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseImmByte,   0,   OP_PCMPESTRI,  OP_PARM_Vdq,   OP_PARM_Wdq,   OP_PARM_Ib,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4199     OPVEX("vpcmpistrm %Vdq,%Wdq,%Ib",   IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseImmByte,   0,   OP_PCMPISTRM,  OP_PARM_Vdq,   OP_PARM_Wdq,   OP_PARM_Ib,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
    4200     OPVEX("vpcmpistri %Vdq,%Wdq,%Ib",   IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseImmByte,   0,   OP_PCMPISTRI,  OP_PARM_Vdq,   OP_PARM_Wdq,   OP_PARM_Ib,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4206    OPVEX("vpcmpestrm %Vdq,%Wdq,%Ib",       IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPCMPESTRM,      OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4207    OPVEX("vpcmpestri %Vdq,%Wdq,%Ib",       IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPCMPESTRI,      OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4208    OPVEX("vpcmpistrm %Vdq,%Wdq,%Ib",       IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPCMPISTRM,      OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4209    OPVEX("vpcmpistri %Vdq,%Wdq,%Ib",       IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VPCMPISTRI,      OP_PARM_Vdq,  OP_PARM_Wdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    42014210    INVALID_OPCODE,
    42024211    INVALID_OPCODE,
     
    42464255    INVALID_OPCODE,
    42474256    INVALID_OPCODE,
    4248     OPVEX("vaeskeygen %Vdq,%Wdq,%Ib",   IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseImmByte,   0,   OP_AESKEYGEN,  OP_PARM_Vdq,   OP_PARM_Wdq,   OP_PARM_Ib,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4257    OPVEX("vaeskeygen %Vdq,%Wdq,%Ib",       IDX_ParseModRM,     IDX_UseModRM,       IDX_ParseImmByte,   0,                  OP_VAESKEYGEN,      OP_PARM_Vdq, OP_PARM_Wdq,  OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    42494258};
    42504259const DISOPMAPDESC g_DisasVexMap3_66Range = { &g_aDisasVexMap3_66[0], 0x00, RT_ELEMENTS(g_aDisasVexMap3_66) };
     
    42524261const DISOPCODE g_aDisasVexMap3F2[] =
    42534262{
    4254     OPVEX("rorx %Gy,%Ey,%Ib",    IDX_ParseModRM,    IDX_UseModRM,   IDX_ParseImmByte,   0,   OP_RORX,    OP_PARM_Gy,  OP_PARM_Ey,  OP_PARM_Ib,  OP_PARM_NONE, DISOPTYPE_HARMLESS),
     4263    OPVEX("rorx %Gy,%Ey,%Ib",               IDX_ParseModRM,    IDX_UseModRM,        IDX_ParseImmByte,   0,                  OP_RORX,            OP_PARM_Gy,  OP_PARM_Ey,   OP_PARM_Ib,   OP_PARM_NONE, DISOPTYPE_HARMLESS),
    42554264};
    42564265const DISOPMAPDESC g_DisasVexMap3F2Range = { &g_aDisasVexMap3F2[0], 0xf0, RT_ELEMENTS(g_aDisasVexMap3F2) };
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette