VirtualBox

Changeset 97447 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Nov 8, 2022 9:07:09 AM (2 years ago)
Author:
vboxsync
Message:

IEM: Minor cleanups and corrections, fixed CMPSD (was working with 32 bits instead of 64).

Location:
trunk/src/VBox/VMM/VMMAll
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h

    r97361 r97447  
    277277        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_EX(IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3);
    278278        IEM_MC_PREPARE_FPU_USAGE();
     279        IEM_MC_FPU_TO_MMX_MODE();
    279280        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    280281        IEM_MC_FETCH_MREG_U64(uSrc, IEM_GET_MODRM_RM_8(bRm));
     
    282283                                 pDst, uSrc, bImmArg);
    283284        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    284         IEM_MC_FPU_TO_MMX_MODE();
    285285        IEM_MC_ADVANCE_RIP_AND_FINISH();
    286286        IEM_MC_END();
     
    304304
    305305        IEM_MC_PREPARE_FPU_USAGE();
     306        IEM_MC_FPU_TO_MMX_MODE();
    306307        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    307308        IEM_MC_CALL_VOID_AIMPL_3(IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_palignr_u64, iemAImpl_palignr_u64_fallback),
    308309                                 pDst, uSrc, bImmArg);
    309310        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    310         IEM_MC_FPU_TO_MMX_MODE();
    311311
    312312        IEM_MC_ADVANCE_RIP_AND_FINISH();
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r97441 r97447  
    36343634        IEM_MC_ARG(uint64_t,                u64Src,             2);
    36353635        IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT();
     3636        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    36363637        IEM_MC_PREPARE_FPU_USAGE();
    36373638        IEM_MC_FPU_TO_MMX_MODE();
     
    36393640        IEM_MC_REF_MXCSR(pfMxcsr);
    36403641        IEM_MC_FETCH_XREG_XMM(Dst, IEM_GET_MODRM_REG(pVCpu, bRm)); /* Need it because the high quadword remains unchanged. */
    3641         IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM(pVCpu, bRm));
     3642        IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM_8(bRm));
    36423643
    36433644        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_cvtpi2ps_u128, pfMxcsr, pDst, u64Src);
     
    36663667        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    36673668        IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT();
     3669        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    36683670        IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    36693671
     
    37033705        IEM_MC_ARG(uint64_t,                u64Src,             2);
    37043706        IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT();
     3707        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    37053708        IEM_MC_PREPARE_FPU_USAGE();
    37063709        IEM_MC_FPU_TO_MMX_MODE();
    37073710
    37083711        IEM_MC_REF_MXCSR(pfMxcsr);
    3709         IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM(pVCpu, bRm));
     3712        IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM_8(bRm));
    37103713
    37113714        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_cvtpi2pd_u128, pfMxcsr, pDst, u64Src);
     
    37343737        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    37353738        IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT();
     3739        IEM_MC_MAYBE_RAISE_FPU_XCPT();
    37363740        IEM_MC_FETCH_MEM_U64(u64Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    37373741
     
    41124116            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    41134117        IEM_MC_ELSE()
    4114             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4118            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    41154119        IEM_MC_ENDIF();
    41164120
     
    41434147            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    41444148        IEM_MC_ELSE()
    4145             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4149            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    41464150        IEM_MC_ENDIF();
    41474151
     
    41804184            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    41814185        IEM_MC_ELSE()
    4182             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4186            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    41834187        IEM_MC_ENDIF();
    41844188
     
    42134217            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    42144218        IEM_MC_ELSE()
    4215             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4219            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    42164220        IEM_MC_ENDIF();
    42174221
     
    45004504            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    45014505        IEM_MC_ELSE()
    4502             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4506            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    45034507        IEM_MC_ENDIF();
    45044508
     
    45314535            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    45324536        IEM_MC_ELSE()
    4533             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4537            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    45344538        IEM_MC_ENDIF();
    45354539
     
    45684572            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    45694573        IEM_MC_ELSE()
    4570             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4574            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    45714575        IEM_MC_ENDIF();
    45724576
     
    46014605            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    46024606        IEM_MC_ELSE()
    4603             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64Dst);
     4607            IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Dst);
    46044608        IEM_MC_ENDIF();
    46054609
     
    55055509        IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    55065510        IEM_MC_CALL_VOID_AIMPL_2(iemAImpl_movmskpd_u128, pu8Dst, puSrc);
    5507         IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u8Dst);
     5511        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG_8(bRm), u8Dst);
    55085512        IEM_MC_ADVANCE_RIP_AND_FINISH();
    55095513        IEM_MC_END();
     
    62366240        if (IEM_IS_MODRM_REG_MODE(bRm))
    62376241        {
    6238             /* MMX, greg */
     6242            /* MMX, greg32 */
    62396243            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62406244            IEM_MC_BEGIN(0, 1);
    6241             IEM_MC_LOCAL(uint64_t, u64Tmp);
     6245            IEM_MC_LOCAL(uint32_t, u32Tmp);
    62426246
    62436247            IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT();
     
    62456249            IEM_MC_FPU_TO_MMX_MODE();
    62466250
    6247             IEM_MC_FETCH_GREG_U32_ZX_U64(u64Tmp, IEM_GET_MODRM_RM(pVCpu, bRm));
    6248             IEM_MC_STORE_MREG_U64(IEM_GET_MODRM_REG_8(bRm), u64Tmp);
     6251            IEM_MC_FETCH_GREG_U32(u32Tmp, IEM_GET_MODRM_RM(pVCpu, bRm));
     6252            IEM_MC_STORE_MREG_U32_ZX_U64(IEM_GET_MODRM_REG_8(bRm), u32Tmp);
    62496253
    62506254            IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    62536257        else
    62546258        {
    6255             /* MMX, [mem] */
     6259            /* MMX, [mem32] */
    62566260            IEM_MC_BEGIN(0, 2);
    62576261            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    75167520    {
    75177521        /*
    7518          * Register, register.
     7522         * XMM128, XMM64.
    75197523         */
    75207524        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    75347538    {
    75357539        /*
    7536          * Memory, register.
     7540         * XMM128, [mem64].
    75377541         */
    75387542        IEM_MC_BEGIN(0, 2);
     
    75647568    {
    75657569        /*
    7566          * Register, register.
     7570         * MMX, MMX.
    75677571         */
    75687572        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
     
    75847588    {
    75857589        /*
    7586          * Memory, Register.
     7590         * [mem64], MMX.
    75877591         */
    75887592        IEM_MC_BEGIN(0, 2);
     
    76127616    {
    76137617        /*
    7614          * Register, register.
     7618         * XMM, XMM.
    76157619         */
    76167620        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    76267630    {
    76277631        /*
    7628          * Register, memory.
     7632         * [mem128], XMM.
    76297633         */
    76307634        IEM_MC_BEGIN(0, 2);
     
    76537657    {
    76547658        /*
    7655          * Register, register.
     7659         * XMM, XMM.
    76567660         */
    76577661        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    76677671    {
    76687672        /*
    7669          * Register, memory.
     7673         * [mem128], XMM.
    76707674         */
    76717675        IEM_MC_BEGIN(0, 2);
     
    1136211366    {
    1136311367        /*
    11364          * Register, register.
     11368         * XMM, XMM.
    1136511369         */
    1136611370        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
     
    1139111395    {
    1139211396        /*
    11393          * Register, memory.
     11397         * XMM, [mem128].
    1139411398         */
    1139511399        IEM_MC_BEGIN(4, 3);
     
    1143311437    {
    1143411438        /*
    11435          * Register, register.
     11439         * XMM, XMM.
    1143611440         */
    1143711441        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
     
    1146211466    {
    1146311467        /*
    11464          * Register, memory.
     11468         * XMM, [mem128].
    1146511469         */
    1146611470        IEM_MC_BEGIN(4, 3);
     
    1150411508    {
    1150511509        /*
    11506          * Register, register.
     11510         * XMM32, XMM32.
    1150711511         */
    1150811512        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
     
    1152411528            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    1152511529        IEM_MC_ELSE()
    11526             IEM_MC_STORE_XREG_XMM(IEM_GET_MODRM_REG(pVCpu, bRm), Dst);
     11530            IEM_MC_STORE_XREG_XMM_U32(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iDword*/, Dst);
    1152711531        IEM_MC_ENDIF();
    1152811532
     
    1153311537    {
    1153411538        /*
    11535          * Register, memory.
     11539         * XMM32, [mem32].
    1153611540         */
    1153711541        IEM_MC_BEGIN(4, 3);
     
    1157511579    {
    1157611580        /*
    11577          * Register, register.
     11581         * XMM64, XMM64.
    1157811582         */
    1157911583        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
     
    1159511599            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    1159611600        IEM_MC_ELSE()
    11597             IEM_MC_STORE_XREG_XMM(IEM_GET_MODRM_REG(pVCpu, bRm), Dst);
     11601            IEM_MC_STORE_XREG_XMM_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQword*/, Dst);
    1159811602        IEM_MC_ENDIF();
    1159911603
     
    1160411608    {
    1160511609        /*
    11606          * Register, memory.
     11610         * XMM64, [mem64].
    1160711611         */
    1160811612        IEM_MC_BEGIN(4, 3);
     
    1161911623        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1162011624        IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT();
    11621         IEM_MC_FETCH_MEM_XMM_U32(Src.uSrc2, 0 /*a_iDword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     11625        IEM_MC_FETCH_MEM_XMM_U64(Src.uSrc2, 0 /*a_iQword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1162211626
    1162311627        IEM_MC_PREPARE_SSE_USAGE();
     
    1162811632            IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT();
    1162911633        IEM_MC_ELSE()
    11630             IEM_MC_STORE_XREG_XMM_U32(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iDword*/, Dst);
     11634            IEM_MC_STORE_XREG_XMM_U64(IEM_GET_MODRM_REG(pVCpu, bRm), 0 /*a_iQword*/, Dst);
    1163111635        IEM_MC_ENDIF();
    1163211636
     
    1170111705FNIEMOP_DEF(iemOp_pinsrw_Pq_RyMw_Ib)
    1170211706{
    11703     IEMOP_MNEMONIC3(RMI, PINSRW, pinsrw, Pq, Ey, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);
     11707    IEMOP_MNEMONIC3(RMI, PINSRW, pinsrw, Pq, Ey, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, 0);
    1170411708    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1170511709    if (IEM_IS_MODRM_REG_MODE(bRm))
     
    1171611720        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_CHECK_SSE_OR_MMXEXT();
    1171711721        IEM_MC_PREPARE_FPU_USAGE();
    11718         IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm));
     11722        IEM_MC_FPU_TO_MMX_MODE();
     11723        IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG_8(bRm));
    1171911724        IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm));
    1172011725        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u64, pu64Dst, u16Src, bEvilArg);
    1172111726        IEM_MC_MODIFIED_MREG_BY_REF(pu64Dst);
    11722         IEM_MC_FPU_TO_MMX_MODE();
    1172311727        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1172411728        IEM_MC_END();
     
    1174011744        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_CHECK_SSE_OR_MMXEXT();
    1174111745        IEM_MC_PREPARE_FPU_USAGE();
     11746        IEM_MC_FPU_TO_MMX_MODE();
    1174211747
    1174311748        IEM_MC_FETCH_MEM_U16(u16Src, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    11744         IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG(pVCpu, bRm));
     11749        IEM_MC_REF_MREG_U64(pu64Dst, IEM_GET_MODRM_REG_8(bRm));
    1174511750        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u64, pu64Dst, u16Src, bEvilArg);
    1174611751        IEM_MC_MODIFIED_MREG_BY_REF(pu64Dst);
    11747         IEM_MC_FPU_TO_MMX_MODE();
    1174811752        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1174911753        IEM_MC_END();
     
    1177011774        IEM_MC_MAYBE_RAISE_SSE2_RELATED_XCPT();
    1177111775        IEM_MC_PREPARE_SSE_USAGE();
     11776        IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm));
    1177211777        IEM_MC_REF_XREG_U128(puDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    11773         IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_RM(pVCpu, bRm));
    1177411778        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pinsrw_u128, puDst, u16Src, bEvilArg);
    1177511779        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    1180911813FNIEMOP_DEF(iemOp_pextrw_Gd_Nq_Ib)
    1181011814{
    11811     /*IEMOP_MNEMONIC3(RMI_REG, PEXTRW, pextrw, Gd, Nq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);*/ /** @todo */
     11815    /*IEMOP_MNEMONIC3(RMI_REG, PEXTRW, pextrw, Gd, Nq, Ib, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, 0);*/ /** @todo */
    1181211816    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
    1181311817    if (IEM_IS_MODRM_REG_MODE(bRm))
     
    1182511829        IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT_CHECK_SSE_OR_MMXEXT();
    1182611830        IEM_MC_PREPARE_FPU_USAGE();
    11827         IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM(pVCpu, bRm));
     11831        IEM_MC_FPU_TO_MMX_MODE();
     11832        IEM_MC_FETCH_MREG_U64(u64Src, IEM_GET_MODRM_RM_8(bRm));
    1182811833        IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_pextrw_u64, pu16Dst, u64Src, bEvilArg);
    1182911834        IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u16Dst);
    11830         IEM_MC_FPU_TO_MMX_MODE();
    1183111835        IEM_MC_ADVANCE_RIP_AND_FINISH();
    1183211836        IEM_MC_END();
     
    1249112495FNIEMOP_DEF(iemOp_addsubpd_Vpd_Wpd)
    1249212496{
    12493     IEMOP_MNEMONIC2(RM, ADDSUBPD, addsubpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
     12497    IEMOP_MNEMONIC2(RM, ADDSUBPD, addsubpd, Vpd, Wpd, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);
    1249412498    return FNIEMOP_CALL_1(iemOpCommonSse3Fp_FullFull_To_Full, iemAImpl_addsubpd_u128);
    1249512499}
     
    1250212506FNIEMOP_DEF(iemOp_addsubps_Vps_Wps)
    1250312507{
    12504     IEMOP_MNEMONIC2(RM, ADDSUBPS, addsubps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
     12508    IEMOP_MNEMONIC2(RM, ADDSUBPS, addsubps, Vps, Wps, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);
    1250512509    return FNIEMOP_CALL_1(iemOpCommonSse3Fp_FullFull_To_Full, iemAImpl_addsubps_u128);
    1250612510}
     
    1251112515FNIEMOP_DEF(iemOp_psrlw_Pq_Qq)
    1251212516{
    12513     IEMOP_MNEMONIC2(RM, PSRLW, psrlw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, 0);
     12517    IEMOP_MNEMONIC2(RM, PSRLW, psrlw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, 0);
    1251412518    return FNIEMOP_CALL_1(iemOpCommonMmxOpt_FullFull_To_Full, iemAImpl_psrlw_u64);
    1251512519}
     
    1256712571FNIEMOP_DEF(iemOp_paddq_Pq_Qq)
    1256812572{
    12569     IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12573    IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1257012574    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_paddq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);
    1257112575}
     
    1257512579FNIEMOP_DEF(iemOp_paddq_Vx_Wx)
    1257612580{
    12577     IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12581    IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1257812582    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddq_u128);
    1257912583}
     
    1258612590FNIEMOP_DEF(iemOp_pmullw_Pq_Qq)
    1258712591{
    12588     IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12592    IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1258912593    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmullw_u64);
    1259012594}
     
    1259312597FNIEMOP_DEF(iemOp_pmullw_Vx_Wx)
    1259412598{
    12595     IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12599    IEMOP_MNEMONIC2(RM, PMULLW, pmullw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1259612600    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmullw_u128);
    1259712601}
     
    1281912823FNIEMOP_DEF(iemOp_psubusb_Pq_Qq)
    1282012824{
    12821     IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12825    IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1282212826    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubusb_u64);
    1282312827}
     
    1282712831FNIEMOP_DEF(iemOp_psubusb_Vx_Wx)
    1282812832{
    12829     IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12833    IEMOP_MNEMONIC2(RM, PSUBUSB, psubusb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1283012834    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubusb_u128);
    1283112835}
     
    1283812842FNIEMOP_DEF(iemOp_psubusw_Pq_Qq)
    1283912843{
    12840     IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12844    IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1284112845    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubusw_u64);
    1284212846}
     
    1284612850FNIEMOP_DEF(iemOp_psubusw_Vx_Wx)
    1284712851{
    12848     IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12852    IEMOP_MNEMONIC2(RM, PSUBUSW, psubusw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1284912853    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubusw_u128);
    1285012854}
     
    1287512879FNIEMOP_DEF(iemOp_pand_Pq_Qq)
    1287612880{
    12877     IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12881    IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1287812882    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pand_u64);
    1287912883}
     
    1288312887FNIEMOP_DEF(iemOp_pand_Vx_Wx)
    1288412888{
    12885     IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12889    IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1288612890    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);
    1288712891}
     
    1289412898FNIEMOP_DEF(iemOp_paddusb_Pq_Qq)
    1289512899{
    12896     IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12900    IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1289712901    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddusb_u64);
    1289812902}
     
    1290212906FNIEMOP_DEF(iemOp_paddusb_Vx_Wx)
    1290312907{
    12904     IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12908    IEMOP_MNEMONIC2(RM, PADDUSB, paddusb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1290512909    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddusb_u128);
    1290612910}
     
    1291312917FNIEMOP_DEF(iemOp_paddusw_Pq_Qq)
    1291412918{
    12915     IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12919    IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1291612920    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddusw_u64);
    1291712921}
     
    1292112925FNIEMOP_DEF(iemOp_paddusw_Vx_Wx)
    1292212926{
    12923     IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12927    IEMOP_MNEMONIC2(RM, PADDUSW, paddusw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1292412928    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddusw_u128);
    1292512929}
     
    1293212936FNIEMOP_DEF(iemOp_pmaxub_Pq_Qq)
    1293312937{
    12934     IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12938    IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1293512939    return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pmaxub_u64);
    1293612940}
     
    1294012944FNIEMOP_DEF(iemOp_pmaxub_Vx_Wx)
    1294112945{
    12942     IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12946    IEMOP_MNEMONIC2(RM, PMAXUB, pmaxub, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1294312947    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaxub_u128);
    1294412948}
     
    1295112955FNIEMOP_DEF(iemOp_pandn_Pq_Qq)
    1295212956{
    12953     IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12957    IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1295412958    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pandn_u64);
    1295512959}
     
    1295912963FNIEMOP_DEF(iemOp_pandn_Vx_Wx)
    1296012964{
    12961     IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12965    IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1296212966    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);
    1296312967}
     
    1297012974FNIEMOP_DEF(iemOp_pavgb_Pq_Qq)
    1297112975{
    12972     IEMOP_MNEMONIC2(RM, PAVGB, pavgb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     12976    IEMOP_MNEMONIC2(RM, PAVGB, pavgb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1297312977    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pavgb_u64);
    1297412978}
     
    1302713031FNIEMOP_DEF(iemOp_pavgw_Pq_Qq)
    1302813032{
    13029     IEMOP_MNEMONIC2(RM, PAVGW, pavgw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13033    IEMOP_MNEMONIC2(RM, PAVGW, pavgw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1303013034    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pavgw_u64);
    1303113035}
     
    1304613050FNIEMOP_DEF(iemOp_pmulhuw_Pq_Qq)
    1304713051{
    13048     IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13052    IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1304913053    return FNIEMOP_CALL_1(iemOpCommonMmxSseOpt_FullFull_To_Full, iemAImpl_pmulhuw_u64);
    1305013054}
     
    1305413058FNIEMOP_DEF(iemOp_pmulhuw_Vx_Wx)
    1305513059{
    13056     IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13060    IEMOP_MNEMONIC2(RM, PMULHUW, pmulhuw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1305713061    return FNIEMOP_CALL_1(iemOpCommonSse2Opt_FullFull_To_Full, iemAImpl_pmulhuw_u128);
    1305813062}
     
    1306513069FNIEMOP_DEF(iemOp_pmulhw_Pq_Qq)
    1306613070{
    13067     IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13071    IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1306813072    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pmulhw_u64);
    1306913073}
     
    1307313077FNIEMOP_DEF(iemOp_pmulhw_Vx_Wx)
    1307413078{
    13075     IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13079    IEMOP_MNEMONIC2(RM, PMULHW, pmulhw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1307613080    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmulhw_u128);
    1307713081}
     
    1320813212FNIEMOP_DEF(iemOp_psubsb_Pq_Qq)
    1320913213{
    13210     IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13214    IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1321113215    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubsb_u64);
    1321213216}
     
    1321613220FNIEMOP_DEF(iemOp_psubsb_Vx_Wx)
    1321713221{
    13218     IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13222    IEMOP_MNEMONIC2(RM, PSUBSB, psubsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1321913223    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubsb_u128);
    1322013224}
     
    1322713231FNIEMOP_DEF(iemOp_psubsw_Pq_Qq)
    1322813232{
    13229     IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13233    IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1323013234    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubsw_u64);
    1323113235}
     
    1323513239FNIEMOP_DEF(iemOp_psubsw_Vx_Wx)
    1323613240{
    13237     IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13241    IEMOP_MNEMONIC2(RM, PSUBSW, psubsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1323813242    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubsw_u128);
    1323913243}
     
    1324713251FNIEMOP_DEF(iemOp_pminsw_Pq_Qq)
    1324813252{
    13249     IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13253    IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1325013254    return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pminsw_u64);
    1325113255}
     
    1325513259FNIEMOP_DEF(iemOp_pminsw_Vx_Wx)
    1325613260{
    13257     IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13261    IEMOP_MNEMONIC2(RM, PMINSW, pminsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1325813262    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pminsw_u128);
    1325913263}
     
    1326713271FNIEMOP_DEF(iemOp_por_Pq_Qq)
    1326813272{
    13269     IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13273    IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1327013274    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_por_u64);
    1327113275}
     
    1327513279FNIEMOP_DEF(iemOp_por_Vx_Wx)
    1327613280{
    13277     IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13281    IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1327813282    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);
    1327913283}
     
    1328613290FNIEMOP_DEF(iemOp_paddsb_Pq_Qq)
    1328713291{
    13288     IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13292    IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1328913293    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddsb_u64);
    1329013294}
     
    1329413298FNIEMOP_DEF(iemOp_paddsb_Vx_Wx)
    1329513299{
    13296     IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13300    IEMOP_MNEMONIC2(RM, PADDSB, paddsb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1329713301    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddsb_u128);
    1329813302}
     
    1330513309FNIEMOP_DEF(iemOp_paddsw_Pq_Qq)
    1330613310{
    13307     IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13311    IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1330813312    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddsw_u64);
    1330913313}
     
    1331313317FNIEMOP_DEF(iemOp_paddsw_Vx_Wx)
    1331413318{
    13315     IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13319    IEMOP_MNEMONIC2(RM, PADDSW, paddsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1331613320    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddsw_u128);
    1331713321}
     
    1332513329FNIEMOP_DEF(iemOp_pmaxsw_Pq_Qq)
    1332613330{
    13327     IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13331    IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1332813332    return FNIEMOP_CALL_1(iemOpCommonMmxSse_FullFull_To_Full, iemAImpl_pmaxsw_u64);
    1332913333}
     
    1333313337FNIEMOP_DEF(iemOp_pmaxsw_Vx_Wx)
    1333413338{
    13335     IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13339    IEMOP_MNEMONIC2(RM, PMAXSW, pmaxsw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1333613340    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pmaxsw_u128);
    1333713341}
     
    1334513349FNIEMOP_DEF(iemOp_pxor_Pq_Qq)
    1334613350{
    13347     IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13351    IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1334813352    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pxor_u64);
    1334913353}
     
    1335313357FNIEMOP_DEF(iemOp_pxor_Vx_Wx)
    1335413358{
    13355     IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13359    IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1335613360    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);
    1335713361}
     
    1351513519FNIEMOP_DEF(iemOp_psubb_Pq_Qq)
    1351613520{
    13517     IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13521    IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1351813522    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubb_u64);
    1351913523}
     
    1352313527FNIEMOP_DEF(iemOp_psubb_Vx_Wx)
    1352413528{
    13525     IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13529    IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1352613530    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubb_u128);
    1352713531}
     
    1353413538FNIEMOP_DEF(iemOp_psubw_Pq_Qq)
    1353513539{
    13536     IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13540    IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1353713541    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubw_u64);
    1353813542}
     
    1354213546FNIEMOP_DEF(iemOp_psubw_Vx_Wx)
    1354313547{
    13544     IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13548    IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1354513549    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubw_u128);
    1354613550}
     
    1355313557FNIEMOP_DEF(iemOp_psubd_Pq_Qq)
    1355413558{
    13555     IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13559    IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1355613560    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubd_u64);
    1355713561}
     
    1356113565FNIEMOP_DEF(iemOp_psubd_Vx_Wx)
    1356213566{
    13563     IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13567    IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1356413568    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubd_u128);
    1356513569}
     
    1357213576FNIEMOP_DEF(iemOp_psubq_Pq_Qq)
    1357313577{
    13574     IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13578    IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1357513579    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_psubq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);
    1357613580}
     
    1358013584FNIEMOP_DEF(iemOp_psubq_Vx_Wx)
    1358113585{
    13582     IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13586    IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1358313587    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubq_u128);
    1358413588}
     
    1359113595FNIEMOP_DEF(iemOp_paddb_Pq_Qq)
    1359213596{
    13593     IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13597    IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1359413598    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddb_u64);
    1359513599}
     
    1359913603FNIEMOP_DEF(iemOp_paddb_Vx_Wx)
    1360013604{
    13601     IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13605    IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1360213606    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddb_u128);
    1360313607}
     
    1361013614FNIEMOP_DEF(iemOp_paddw_Pq_Qq)
    1361113615{
    13612     IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13616    IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1361313617    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddw_u64);
    1361413618}
     
    1361813622FNIEMOP_DEF(iemOp_paddw_Vx_Wx)
    1361913623{
    13620     IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13624    IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1362113625    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddw_u128);
    1362213626}
     
    1362913633FNIEMOP_DEF(iemOp_paddd_Pq_Qq)
    1363013634{
    13631     IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13635    IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS | DISOPTYPE_MMX, IEMOPHINT_IGNORES_OP_SIZES);
    1363213636    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddd_u64);
    1363313637}
     
    1363713641FNIEMOP_DEF(iemOp_paddd_Vx_Wx)
    1363813642{
    13639     IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
     13643    IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    1364013644    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddd_u128);
    1364113645}
Note: See TracChangeset for help on using the changeset viewer.

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