VirtualBox

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


Ignore:
Timestamp:
Jul 5, 2022 2:26:12 PM (3 years ago)
Author:
vboxsync
Message:

VMM/IEM: Eliminated the IEMOPMEDIAF2 function tables. Not need because SSE and MMX are never implemented by the same decoder functions. bugref:9898

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

Legend:

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

    r95515 r95516  
    891891};
    892892
    893 
    894 # ifndef IEM_WITHOUT_ASSEMBLY
    895 /** Function table for the PSHUFB instruction */
    896 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pshufb       = { iemAImpl_pshufb_u64,     iemAImpl_pshufb_u128 };
    897 # endif
    898 /** Function table for the PSHUFB instruction */
    899 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pshufb_fallback = { iemAImpl_pshufb_u64_fallback, iemAImpl_pshufb_u128_fallback };
    900 /** Function table for the PAND instruction */
    901 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pand         = { iemAImpl_pand_u64,       iemAImpl_pand_u128 };
    902 /** Function table for the PANDN instruction */
    903 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pandn        = { iemAImpl_pandn_u64,      iemAImpl_pandn_u128 };
    904 /** Function table for the POR instruction */
    905 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_por          = { iemAImpl_por_u64,        iemAImpl_por_u128 };
    906 /** Function table for the PXOR instruction */
    907 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pxor         = { iemAImpl_pxor_u64,       iemAImpl_pxor_u128 };
    908 /** Function table for the PCMPEQB instruction */
    909 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpeqb      = { iemAImpl_pcmpeqb_u64,    iemAImpl_pcmpeqb_u128 };
    910 /** Function table for the PCMPEQW instruction */
    911 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpeqw      = { iemAImpl_pcmpeqw_u64,    iemAImpl_pcmpeqw_u128 };
    912 /** Function table for the PCMPEQD instruction */
    913 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpeqd      = { iemAImpl_pcmpeqd_u64,    iemAImpl_pcmpeqd_u128 };
    914 # ifndef IEM_WITHOUT_ASSEMBLY
    915 /** Function table for the PCMPEQQ instruction */
    916 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpeqq      = { NULL,                    iemAImpl_pcmpeqq_u128 };
    917 # endif
    918 /** Function table for the PCMPEQQ instruction, software fallback. */
    919 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpeqq_fallback = { NULL,                iemAImpl_pcmpeqq_u128_fallback };
    920 /** Function table for the PCMPGTB instruction */
    921 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpgtb      = { iemAImpl_pcmpgtb_u64,    iemAImpl_pcmpgtb_u128 };
    922 /** Function table for the PCMPGTW instruction */
    923 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpgtw      = { iemAImpl_pcmpgtw_u64,    iemAImpl_pcmpgtw_u128 };
    924 /** Function table for the PCMPGTD instruction */
    925 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpgtd      = { iemAImpl_pcmpgtd_u64,    iemAImpl_pcmpgtd_u128 };
    926 # ifndef IEM_WITHOUT_ASSEMBLY
    927 /** Function table for the PCMPGTQ instruction */
    928 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpgtq      = { NULL,                    iemAImpl_pcmpgtq_u128 };
    929 # endif
    930 /** Function table for the PCMPGTQ instruction, software fallback. */
    931 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_pcmpgtq_fallback = { NULL,                iemAImpl_pcmpgtq_u128_fallback };
    932 /** Function table for the PADDB instruction. */
    933 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_paddb        = { iemAImpl_paddb_u64,      iemAImpl_paddb_u128 };
    934 /** Function table for the PADDW instruction. */
    935 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_paddw        = { iemAImpl_paddw_u64,      iemAImpl_paddw_u128 };
    936 /** Function table for the PADDD instruction. */
    937 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_paddd        = { iemAImpl_paddd_u64,      iemAImpl_paddd_u128 };
    938 /** Function table for the PADDQ instruction. */
    939 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_paddq        = { iemAImpl_paddq_u64,      iemAImpl_paddq_u128 };
    940 /** Function table for the PSUBB instruction. */
    941 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_psubb        = { iemAImpl_psubb_u64,      iemAImpl_psubb_u128 };
    942 /** Function table for the PSUBW instruction. */
    943 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_psubw        = { iemAImpl_psubw_u64,      iemAImpl_psubw_u128 };
    944 /** Function table for the PSUBD instruction. */
    945 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_psubd        = { iemAImpl_psubd_u64,      iemAImpl_psubd_u128 };
    946 /** Function table for the PSUBQ instruction. */
    947 IEM_STATIC const IEMOPMEDIAF2 g_iemAImpl_psubq        = { iemAImpl_psubq_u64,      iemAImpl_psubq_u128 };
    948893
    949894# ifndef IEM_WITHOUT_ASSEMBLY
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h

    r95515 r95516  
    2424 */
    2525
    26 FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, PCIEMOPMEDIAF2, pImpl, bool, fSupported); /* in IEMAllInstructionsTwoByteOf.cpp.h */
     26FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, PFNIEMAIMPLMEDIAF2U64, pfnU64, bool, fSupported); /* in IEMAllInstructionsTwoByteOf.cpp.h */
    2727
    2828
     
    3636 * @sa  iemOpCommonSse2_FullFull_To_Full
    3737 */
    38 FNIEMOP_DEF_1(iemOpCommonSsse3_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl)
     38FNIEMOP_DEF_1(iemOpCommonSsse3_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
    3939{
    4040    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    5252        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    5353        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    54         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     54        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    5555        IEM_MC_ADVANCE_RIP();
    5656        IEM_MC_END();
     
    7474        IEM_MC_PREPARE_SSE_USAGE();
    7575        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    76         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     76        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    7777
    7878        IEM_MC_ADVANCE_RIP();
     
    8888    IEMOP_MNEMONIC2(RM, PSHUFB, pshufb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    8989    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex,
    90                           IEM_SELECT_HOST_OR_FALLBACK(fSsse3, &g_iemAImpl_pshufb, &g_iemAImpl_pshufb_fallback),
     90                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pshufb_u64,&iemAImpl_pshufb_u64_fallback),
    9191                          IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3);
    9292}
     
    9898    IEMOP_MNEMONIC2(RM, PSHUFB, pshufb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9999    return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full,
    100                           IEM_SELECT_HOST_OR_FALLBACK(fSsse3, &g_iemAImpl_pshufb, &g_iemAImpl_pshufb_fallback));
     100                          IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pshufb_u128, iemAImpl_pshufb_u128_fallback));
    101101
    102102}
     
    227227 * @sa  iemOpCommonSse2_FullFull_To_Full
    228228 */
    229 FNIEMOP_DEF_1(iemOpCommonSse41_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl)
     229FNIEMOP_DEF_1(iemOpCommonSse41_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
    230230{
    231231    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    243243        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    244244        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    245         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     245        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    246246        IEM_MC_ADVANCE_RIP();
    247247        IEM_MC_END();
     
    265265        IEM_MC_PREPARE_SSE_USAGE();
    266266        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    267         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     267        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    268268
    269269        IEM_MC_ADVANCE_RIP();
     
    283283 * @sa  iemOpCommonSse2_FullFull_To_Full, iemOpCommonSse41_FullFull_To_Full
    284284 */
    285 FNIEMOP_DEF_1(iemOpCommonSse42_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl)
     285FNIEMOP_DEF_1(iemOpCommonSse42_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
    286286{
    287287    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    299299        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    300300        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    301         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     301        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    302302        IEM_MC_ADVANCE_RIP();
    303303        IEM_MC_END();
     
    321321        IEM_MC_PREPARE_SSE_USAGE();
    322322        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    323         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     323        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    324324
    325325        IEM_MC_ADVANCE_RIP();
     
    335335    IEMOP_MNEMONIC2(RM, PCMPEQQ, pcmpeqq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    336336    return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full,
    337                           IEM_SELECT_HOST_OR_FALLBACK(fSse41, &g_iemAImpl_pcmpeqq, &g_iemAImpl_pcmpeqq_fallback));
     337                          IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pcmpeqq_u128, iemAImpl_pcmpeqq_u128_fallback));
    338338}
    339339
     
    413413    IEMOP_MNEMONIC2(RM, PCMPGTQ, pcmpgtq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    414414    return FNIEMOP_CALL_1(iemOpCommonSse42_FullFull_To_Full,
    415                           IEM_SELECT_HOST_OR_FALLBACK(fSse42, &g_iemAImpl_pcmpgtq, &g_iemAImpl_pcmpgtq_fallback));
     415                          IEM_SELECT_HOST_OR_FALLBACK(fSse42, iemAImpl_pcmpgtq_u128, iemAImpl_pcmpgtq_u128_fallback));
    416416}
    417417
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r95515 r95516  
    3030 *      pxxx    mm1, mm2/mem64
    3131 */
    32 FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl)
     32FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U64, pfnU64)
    3333{
    3434    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    4848        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    4949        IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    50         IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc);
     50        IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
    5151        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    5252        IEM_MC_FPU_TO_MMX_MODE();
     
    7272        IEM_MC_PREPARE_FPU_USAGE();
    7373        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    74         IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc);
     74        IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
    7575        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    7676        IEM_MC_FPU_TO_MMX_MODE();
     
    8888 * that was introduced with SSE2.
    8989 */
    90 FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, PCIEMOPMEDIAF2, pImpl, bool, fSupported)
     90FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, PFNIEMAIMPLMEDIAF2U64, pfnU64, bool, fSupported)
    9191{
    9292    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    106106        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    107107        IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm));
    108         IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc);
     108        IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
    109109        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    110110        IEM_MC_FPU_TO_MMX_MODE();
     
    130130        IEM_MC_PREPARE_FPU_USAGE();
    131131        IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm));
    132         IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc);
     132        IEM_MC_CALL_MMX_AIMPL_2(pfnU64, pDst, pSrc);
    133133        IEM_MC_MODIFIED_MREG_BY_REF(pDst);
    134134        IEM_MC_FPU_TO_MMX_MODE();
     
    150150 * @sa iemOpCommonSse41_FullFull_To_Full, iemOpCommonSse2_FullFull_To_Full
    151151 */
    152 FNIEMOP_DEF_1(iemOpCommonSse2_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl)
     152FNIEMOP_DEF_1(iemOpCommonSse2_FullFull_To_Full, PFNIEMAIMPLMEDIAF2U128, pfnU128)
    153153{
    154154    uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm);
     
    166166        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    167167        IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
    168         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     168        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    169169        IEM_MC_ADVANCE_RIP();
    170170        IEM_MC_END();
     
    188188        IEM_MC_PREPARE_SSE_USAGE();
    189189        IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm));
    190         IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc);
     190        IEM_MC_CALL_SSE_AIMPL_2(pfnU128, pDst, pSrc);
    191191
    192192        IEM_MC_ADVANCE_RIP();
     
    30953095{
    30963096    IEMOP_MNEMONIC2(RM, ANDPS, andps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    3097     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pand);
     3097    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);
    30983098}
    30993099
     
    31033103{
    31043104    IEMOP_MNEMONIC2(RM, ANDPD, andpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    3105     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pand);
     3105    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);
    31063106}
    31073107
     
    31153115{
    31163116    IEMOP_MNEMONIC2(RM, ANDNPS, andnps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    3117     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pandn);
     3117    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);
    31183118}
    31193119
     
    31233123{
    31243124    IEMOP_MNEMONIC2(RM, ANDNPD, andnpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    3125     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pandn);
     3125    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);
    31263126}
    31273127
     
    31353135{
    31363136    IEMOP_MNEMONIC2(RM, ORPS, orps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    3137     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_por);
     3137    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);
    31383138}
    31393139
     
    31433143{
    31443144    IEMOP_MNEMONIC2(RM, ORPD, orpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    3145     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_por);
     3145    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);
    31463146}
    31473147
     
    31553155{
    31563156    IEMOP_MNEMONIC2(RM, XORPS, xorps, Vps, Wps, DISOPTYPE_HARMLESS, 0);
    3157     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pxor);
     3157    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);
    31583158}
    31593159
     
    31633163{
    31643164    IEMOP_MNEMONIC2(RM, XORPD, xorpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0);
    3165     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pxor);
     3165    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);
    31663166}
    31673167
     
    34303430{
    34313431    IEMOP_MNEMONIC2(RM, PCMPGTB, pcmpgtb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    3432     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpgtb);
     3432    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtb_u64);
    34333433}
    34343434
     
    34383438{
    34393439    IEMOP_MNEMONIC2(RM, PCMPGTB, pcmpgtb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    3440     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpgtb);
     3440    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtb_u128);
    34413441}
    34423442
     
    34493449{
    34503450    IEMOP_MNEMONIC2(RM, PCMPGTW, pcmpgtw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    3451     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpgtw);
     3451    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtw_u64);
    34523452}
    34533453
     
    34573457{
    34583458    IEMOP_MNEMONIC2(RM, PCMPGTW, pcmpgtw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    3459     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpgtw);
     3459    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtw_u128);
    34603460}
    34613461
     
    34683468{
    34693469    IEMOP_MNEMONIC2(RM, PCMPGTD, pcmpgtd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    3470     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpgtd);
     3470    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtd_u64);
    34713471}
    34723472
     
    34763476{
    34773477    IEMOP_MNEMONIC2(RM, PCMPGTD, pcmpgtd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    3478     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpgtd);
     3478    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtd_u128);
    34793479}
    34803480
     
    43754375{
    43764376    IEMOP_MNEMONIC2(RM, PCMPEQB, pcmpeqb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4377     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpeqb);
     4377    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqb_u64);
    43784378}
    43794379
     
    43834383{
    43844384    IEMOP_MNEMONIC2(RM, PCMPEQB, pcmpeqb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4385     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqb);
     4385    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqb_u128);
    43864386}
    43874387
     
    43954395{
    43964396    IEMOP_MNEMONIC2(RM, PCMPEQW, pcmpeqw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4397     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpeqw);
     4397    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqw_u64);
    43984398}
    43994399
     
    44034403{
    44044404    IEMOP_MNEMONIC2(RM, PCMPEQW, pcmpeqw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4405     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqw);
     4405    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqw_u128);
    44064406}
    44074407
     
    44154415{
    44164416    IEMOP_MNEMONIC2(RM, PCMPEQD, pcmpeqd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4417     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpeqd);
     4417    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqd_u64);
    44184418}
    44194419
     
    44234423{
    44244424    IEMOP_MNEMONIC2(RM, PCMPEQD, pcmpeqd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4425     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqd);
     4425    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqd_u128);
    44264426}
    44274427
     
    92459245{
    92469246    IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9247     return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, &g_iemAImpl_paddq, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);
     9247    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_paddq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);
    92489248}
    92499249
     
    92539253{
    92549254    IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9255     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddq);
     9255    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddq_u128);
    92569256}
    92579257
     
    95069506{
    95079507    IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9508     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pand);
     9508    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pand_u64);
    95099509}
    95109510
     
    95149514{
    95159515    IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9516     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pand);
     9516    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);
    95179517}
    95189518
     
    95479547{
    95489548    IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9549     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pandn);
     9549    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pandn_u64);
    95509550}
    95519551
     
    95559555{
    95569556    IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9557     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pandn);
     9557    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);
    95589558}
    95599559
     
    97379737{
    97389738    IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9739     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_por);
     9739    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_por_u64);
    97409740}
    97419741
     
    97459745{
    97469746    IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9747     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_por);
     9747    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);
    97489748}
    97499749
     
    97789778{
    97799779    IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9780     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pxor);
     9780    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pxor_u64);
    97819781}
    97829782
     
    97869786{
    97879787    IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9788     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pxor);
     9788    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);
    97899789}
    97909790
     
    98459845{
    98469846    IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9847     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_psubb);
     9847    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubb_u64);
    98489848}
    98499849
     
    98539853{
    98549854    IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9855     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubb);
     9855    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubb_u128);
    98569856}
    98579857
     
    98649864{
    98659865    IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9866     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_psubw);
     9866    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubw_u64);
    98679867}
    98689868
     
    98729872{
    98739873    IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9874     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubw);
     9874    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubw_u128);
    98759875}
    98769876
     
    98839883{
    98849884    IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9885     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_psubd);
     9885    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubd_u64);
    98869886}
    98879887
     
    98919891{
    98929892    IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9893     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubd);
     9893    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubd_u128);
    98949894}
    98959895
     
    99029902{
    99039903    IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9904     return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, &g_iemAImpl_psubq, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);
     9904    return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_psubq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);
    99059905}
    99069906
     
    99109910{
    99119911    IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9912     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubq);
     9912    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubq_u128);
    99139913}
    99149914
     
    99219921{
    99229922    IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9923     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_paddb);
     9923    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddb_u64);
    99249924}
    99259925
     
    99299929{
    99309930    IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9931     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddb);
     9931    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddb_u128);
    99329932}
    99339933
     
    99409940{
    99419941    IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9942     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_paddw);
     9942    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddw_u64);
    99439943}
    99449944
     
    99489948{
    99499949    IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9950     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddw);
     9950    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddw_u128);
    99519951}
    99529952
     
    99599959{
    99609960    IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9961     return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_paddd);
     9961    return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddd_u64);
    99629962}
    99639963
     
    99679967{
    99689968    IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    9969     return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddd);
     9969    return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddd_u128);
    99709970}
    99719971
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