Changeset 95515 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Jul 5, 2022 2:25:50 PM (3 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsInterpretOnly.cpp
r95514 r95515 891 891 }; 892 892 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 }; 893 948 894 949 # ifndef IEM_WITHOUT_ASSEMBLY -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h
r95514 r95515 24 24 */ 25 25 26 FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, P FNIEMAIMPLMEDIAF2U64, pfnU64, bool, fSupported); /* in IEMAllInstructionsTwoByteOf.cpp.h */26 FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, PCIEMOPMEDIAF2, pImpl, bool, fSupported); /* in IEMAllInstructionsTwoByteOf.cpp.h */ 27 27 28 28 … … 36 36 * @sa iemOpCommonSse2_FullFull_To_Full 37 37 */ 38 FNIEMOP_DEF_1(iemOpCommonSsse3_FullFull_To_Full, P FNIEMAIMPLMEDIAF2U128, pfnU128)38 FNIEMOP_DEF_1(iemOpCommonSsse3_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl) 39 39 { 40 40 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); … … 52 52 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 53 53 IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); 54 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);54 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 55 55 IEM_MC_ADVANCE_RIP(); 56 56 IEM_MC_END(); … … 74 74 IEM_MC_PREPARE_SSE_USAGE(); 75 75 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 76 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);76 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 77 77 78 78 IEM_MC_ADVANCE_RIP(); … … 88 88 IEMOP_MNEMONIC2(RM, PSHUFB, pshufb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 89 89 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, 90 IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pshufb_u64,&iemAImpl_pshufb_u64_fallback),90 IEM_SELECT_HOST_OR_FALLBACK(fSsse3, &g_iemAImpl_pshufb, &g_iemAImpl_pshufb_fallback), 91 91 IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3); 92 92 } … … 98 98 IEMOP_MNEMONIC2(RM, PSHUFB, pshufb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 99 99 return FNIEMOP_CALL_1(iemOpCommonSsse3_FullFull_To_Full, 100 IEM_SELECT_HOST_OR_FALLBACK(fSsse3, iemAImpl_pshufb_u128, iemAImpl_pshufb_u128_fallback));100 IEM_SELECT_HOST_OR_FALLBACK(fSsse3, &g_iemAImpl_pshufb, &g_iemAImpl_pshufb_fallback)); 101 101 102 102 } … … 227 227 * @sa iemOpCommonSse2_FullFull_To_Full 228 228 */ 229 FNIEMOP_DEF_1(iemOpCommonSse41_FullFull_To_Full, P FNIEMAIMPLMEDIAF2U128, pfnU128)229 FNIEMOP_DEF_1(iemOpCommonSse41_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl) 230 230 { 231 231 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); … … 243 243 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 244 244 IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); 245 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);245 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 246 246 IEM_MC_ADVANCE_RIP(); 247 247 IEM_MC_END(); … … 265 265 IEM_MC_PREPARE_SSE_USAGE(); 266 266 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 267 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);267 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 268 268 269 269 IEM_MC_ADVANCE_RIP(); … … 283 283 * @sa iemOpCommonSse2_FullFull_To_Full, iemOpCommonSse41_FullFull_To_Full 284 284 */ 285 FNIEMOP_DEF_1(iemOpCommonSse42_FullFull_To_Full, P FNIEMAIMPLMEDIAF2U128, pfnU128)285 FNIEMOP_DEF_1(iemOpCommonSse42_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl) 286 286 { 287 287 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); … … 299 299 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 300 300 IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); 301 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);301 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 302 302 IEM_MC_ADVANCE_RIP(); 303 303 IEM_MC_END(); … … 321 321 IEM_MC_PREPARE_SSE_USAGE(); 322 322 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 323 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);323 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 324 324 325 325 IEM_MC_ADVANCE_RIP(); … … 335 335 IEMOP_MNEMONIC2(RM, PCMPEQQ, pcmpeqq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 336 336 return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full, 337 IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pcmpeqq_u128, iemAImpl_pcmpeqq_u128_fallback));337 IEM_SELECT_HOST_OR_FALLBACK(fSse41, &g_iemAImpl_pcmpeqq, &g_iemAImpl_pcmpeqq_fallback)); 338 338 } 339 339 … … 413 413 IEMOP_MNEMONIC2(RM, PCMPGTQ, pcmpgtq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 414 414 return FNIEMOP_CALL_1(iemOpCommonSse42_FullFull_To_Full, 415 IEM_SELECT_HOST_OR_FALLBACK(fSse42, iemAImpl_pcmpgtq_u128, iemAImpl_pcmpgtq_u128_fallback));415 IEM_SELECT_HOST_OR_FALLBACK(fSse42, &g_iemAImpl_pcmpgtq, &g_iemAImpl_pcmpgtq_fallback)); 416 416 } 417 417 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r95514 r95515 30 30 * pxxx mm1, mm2/mem64 31 31 */ 32 FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full, P FNIEMAIMPLMEDIAF2U64, pfnU64)32 FNIEMOP_DEF_1(iemOpCommonMmx_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl) 33 33 { 34 34 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); … … 48 48 IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm)); 49 49 IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm)); 50 IEM_MC_CALL_MMX_AIMPL_2(p fnU64, pDst, pSrc);50 IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc); 51 51 IEM_MC_MODIFIED_MREG_BY_REF(pDst); 52 52 IEM_MC_FPU_TO_MMX_MODE(); … … 72 72 IEM_MC_PREPARE_FPU_USAGE(); 73 73 IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm)); 74 IEM_MC_CALL_MMX_AIMPL_2(p fnU64, pDst, pSrc);74 IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc); 75 75 IEM_MC_MODIFIED_MREG_BY_REF(pDst); 76 76 IEM_MC_FPU_TO_MMX_MODE(); … … 88 88 * that was introduced with SSE2. 89 89 */ 90 FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, P FNIEMAIMPLMEDIAF2U64, pfnU64, bool, fSupported)90 FNIEMOP_DEF_2(iemOpCommonMmx_FullFull_To_Full_Ex, PCIEMOPMEDIAF2, pImpl, bool, fSupported) 91 91 { 92 92 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); … … 106 106 IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm)); 107 107 IEM_MC_REF_MREG_U64_CONST(pSrc, IEM_GET_MODRM_RM_8(bRm)); 108 IEM_MC_CALL_MMX_AIMPL_2(p fnU64, pDst, pSrc);108 IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc); 109 109 IEM_MC_MODIFIED_MREG_BY_REF(pDst); 110 110 IEM_MC_FPU_TO_MMX_MODE(); … … 130 130 IEM_MC_PREPARE_FPU_USAGE(); 131 131 IEM_MC_REF_MREG_U64(pDst, IEM_GET_MODRM_REG_8(bRm)); 132 IEM_MC_CALL_MMX_AIMPL_2(p fnU64, pDst, pSrc);132 IEM_MC_CALL_MMX_AIMPL_2(pImpl->pfnU64, pDst, pSrc); 133 133 IEM_MC_MODIFIED_MREG_BY_REF(pDst); 134 134 IEM_MC_FPU_TO_MMX_MODE(); … … 150 150 * @sa iemOpCommonSse41_FullFull_To_Full, iemOpCommonSse2_FullFull_To_Full 151 151 */ 152 FNIEMOP_DEF_1(iemOpCommonSse2_FullFull_To_Full, P FNIEMAIMPLMEDIAF2U128, pfnU128)152 FNIEMOP_DEF_1(iemOpCommonSse2_FullFull_To_Full, PCIEMOPMEDIAF2, pImpl) 153 153 { 154 154 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); … … 166 166 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 167 167 IEM_MC_REF_XREG_U128_CONST(pSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); 168 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);168 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 169 169 IEM_MC_ADVANCE_RIP(); 170 170 IEM_MC_END(); … … 188 188 IEM_MC_PREPARE_SSE_USAGE(); 189 189 IEM_MC_REF_XREG_U128(pDst, IEM_GET_MODRM_REG(pVCpu, bRm)); 190 IEM_MC_CALL_SSE_AIMPL_2(p fnU128, pDst, pSrc);190 IEM_MC_CALL_SSE_AIMPL_2(pImpl->pfnU128, pDst, pSrc); 191 191 192 192 IEM_MC_ADVANCE_RIP(); … … 3095 3095 { 3096 3096 IEMOP_MNEMONIC2(RM, ANDPS, andps, Vps, Wps, DISOPTYPE_HARMLESS, 0); 3097 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);3097 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pand); 3098 3098 } 3099 3099 … … 3103 3103 { 3104 3104 IEMOP_MNEMONIC2(RM, ANDPD, andpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0); 3105 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);3105 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pand); 3106 3106 } 3107 3107 … … 3115 3115 { 3116 3116 IEMOP_MNEMONIC2(RM, ANDNPS, andnps, Vps, Wps, DISOPTYPE_HARMLESS, 0); 3117 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);3117 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pandn); 3118 3118 } 3119 3119 … … 3123 3123 { 3124 3124 IEMOP_MNEMONIC2(RM, ANDNPD, andnpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0); 3125 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);3125 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pandn); 3126 3126 } 3127 3127 … … 3135 3135 { 3136 3136 IEMOP_MNEMONIC2(RM, ORPS, orps, Vps, Wps, DISOPTYPE_HARMLESS, 0); 3137 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);3137 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_por); 3138 3138 } 3139 3139 … … 3143 3143 { 3144 3144 IEMOP_MNEMONIC2(RM, ORPD, orpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0); 3145 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);3145 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_por); 3146 3146 } 3147 3147 … … 3155 3155 { 3156 3156 IEMOP_MNEMONIC2(RM, XORPS, xorps, Vps, Wps, DISOPTYPE_HARMLESS, 0); 3157 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);3157 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pxor); 3158 3158 } 3159 3159 … … 3163 3163 { 3164 3164 IEMOP_MNEMONIC2(RM, XORPD, xorpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0); 3165 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);3165 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pxor); 3166 3166 } 3167 3167 … … 3430 3430 { 3431 3431 IEMOP_MNEMONIC2(RM, PCMPGTB, pcmpgtb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 3432 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtb_u64);3432 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpgtb); 3433 3433 } 3434 3434 … … 3438 3438 { 3439 3439 IEMOP_MNEMONIC2(RM, PCMPGTB, pcmpgtb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 3440 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtb_u128);3440 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpgtb); 3441 3441 } 3442 3442 … … 3449 3449 { 3450 3450 IEMOP_MNEMONIC2(RM, PCMPGTW, pcmpgtw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 3451 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtw_u64);3451 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpgtw); 3452 3452 } 3453 3453 … … 3457 3457 { 3458 3458 IEMOP_MNEMONIC2(RM, PCMPGTW, pcmpgtw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 3459 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtw_u128);3459 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpgtw); 3460 3460 } 3461 3461 … … 3468 3468 { 3469 3469 IEMOP_MNEMONIC2(RM, PCMPGTD, pcmpgtd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 3470 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpgtd_u64);3470 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpgtd); 3471 3471 } 3472 3472 … … 3476 3476 { 3477 3477 IEMOP_MNEMONIC2(RM, PCMPGTD, pcmpgtd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 3478 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpgtd_u128);3478 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpgtd); 3479 3479 } 3480 3480 … … 4375 4375 { 4376 4376 IEMOP_MNEMONIC2(RM, PCMPEQB, pcmpeqb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 4377 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqb_u64);4377 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpeqb); 4378 4378 } 4379 4379 … … 4383 4383 { 4384 4384 IEMOP_MNEMONIC2(RM, PCMPEQB, pcmpeqb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 4385 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqb_u128);4385 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqb); 4386 4386 } 4387 4387 … … 4395 4395 { 4396 4396 IEMOP_MNEMONIC2(RM, PCMPEQW, pcmpeqw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 4397 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqw_u64);4397 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpeqw); 4398 4398 } 4399 4399 … … 4403 4403 { 4404 4404 IEMOP_MNEMONIC2(RM, PCMPEQW, pcmpeqw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 4405 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqw_u128);4405 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqw); 4406 4406 } 4407 4407 … … 4415 4415 { 4416 4416 IEMOP_MNEMONIC2(RM, PCMPEQD, pcmpeqd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 4417 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pcmpeqd_u64);4417 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pcmpeqd); 4418 4418 } 4419 4419 … … 4423 4423 { 4424 4424 IEMOP_MNEMONIC2(RM, PCMPEQD, pcmpeqd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 4425 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pcmpeqd_u128);4425 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pcmpeqd); 4426 4426 } 4427 4427 … … 9245 9245 { 9246 9246 IEMOP_MNEMONIC2(RM, PADDQ, paddq, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9247 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_paddq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);9247 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, &g_iemAImpl_paddq, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2); 9248 9248 } 9249 9249 … … 9253 9253 { 9254 9254 IEMOP_MNEMONIC2(RM, PADDQ, paddq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9255 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddq_u128);9255 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddq); 9256 9256 } 9257 9257 … … 9506 9506 { 9507 9507 IEMOP_MNEMONIC2(RM, PAND, pand, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9508 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pand_u64);9508 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pand); 9509 9509 } 9510 9510 … … 9514 9514 { 9515 9515 IEMOP_MNEMONIC2(RM, PAND, pand, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9516 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pand_u128);9516 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pand); 9517 9517 } 9518 9518 … … 9547 9547 { 9548 9548 IEMOP_MNEMONIC2(RM, PANDN, pandn, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9549 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pandn_u64);9549 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pandn); 9550 9550 } 9551 9551 … … 9555 9555 { 9556 9556 IEMOP_MNEMONIC2(RM, PANDN, pandn, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9557 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pandn_u128);9557 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pandn); 9558 9558 } 9559 9559 … … 9737 9737 { 9738 9738 IEMOP_MNEMONIC2(RM, POR, por, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9739 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_por_u64);9739 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_por); 9740 9740 } 9741 9741 … … 9745 9745 { 9746 9746 IEMOP_MNEMONIC2(RM, POR, por, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9747 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_por_u128);9747 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_por); 9748 9748 } 9749 9749 … … 9778 9778 { 9779 9779 IEMOP_MNEMONIC2(RM, PXOR, pxor, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9780 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_pxor_u64);9780 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_pxor); 9781 9781 } 9782 9782 … … 9786 9786 { 9787 9787 IEMOP_MNEMONIC2(RM, PXOR, pxor, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9788 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_pxor_u128);9788 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_pxor); 9789 9789 } 9790 9790 … … 9845 9845 { 9846 9846 IEMOP_MNEMONIC2(RM, PSUBB, psubb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9847 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubb_u64);9847 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_psubb); 9848 9848 } 9849 9849 … … 9853 9853 { 9854 9854 IEMOP_MNEMONIC2(RM, PSUBB, psubb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9855 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubb_u128);9855 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubb); 9856 9856 } 9857 9857 … … 9864 9864 { 9865 9865 IEMOP_MNEMONIC2(RM, PSUBW, psubw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9866 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubw_u64);9866 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_psubw); 9867 9867 } 9868 9868 … … 9872 9872 { 9873 9873 IEMOP_MNEMONIC2(RM, PSUBW, psubw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9874 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubw_u128);9874 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubw); 9875 9875 } 9876 9876 … … 9883 9883 { 9884 9884 IEMOP_MNEMONIC2(RM, PSUBD, psubd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9885 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_psubd_u64);9885 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_psubd); 9886 9886 } 9887 9887 … … 9891 9891 { 9892 9892 IEMOP_MNEMONIC2(RM, PSUBD, psubd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9893 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubd_u128);9893 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubd); 9894 9894 } 9895 9895 … … 9902 9902 { 9903 9903 IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9904 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, iemAImpl_psubq_u64, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2);9904 return FNIEMOP_CALL_2(iemOpCommonMmx_FullFull_To_Full_Ex, &g_iemAImpl_psubq, IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2); 9905 9905 } 9906 9906 … … 9910 9910 { 9911 9911 IEMOP_MNEMONIC2(RM, PSUBQ, psubq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9912 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_psubq_u128);9912 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_psubq); 9913 9913 } 9914 9914 … … 9921 9921 { 9922 9922 IEMOP_MNEMONIC2(RM, PADDB, paddb, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9923 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddb_u64);9923 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_paddb); 9924 9924 } 9925 9925 … … 9929 9929 { 9930 9930 IEMOP_MNEMONIC2(RM, PADDB, paddb, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9931 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddb_u128);9931 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddb); 9932 9932 } 9933 9933 … … 9940 9940 { 9941 9941 IEMOP_MNEMONIC2(RM, PADDW, paddw, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9942 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddw_u64);9942 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_paddw); 9943 9943 } 9944 9944 … … 9948 9948 { 9949 9949 IEMOP_MNEMONIC2(RM, PADDW, paddw, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9950 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddw_u128);9950 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddw); 9951 9951 } 9952 9952 … … 9959 9959 { 9960 9960 IEMOP_MNEMONIC2(RM, PADDD, paddd, Pq, Qq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9961 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, iemAImpl_paddd_u64);9961 return FNIEMOP_CALL_1(iemOpCommonMmx_FullFull_To_Full, &g_iemAImpl_paddd); 9962 9962 } 9963 9963 … … 9967 9967 { 9968 9968 IEMOP_MNEMONIC2(RM, PADDD, paddd, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 9969 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, iemAImpl_paddd_u128);9969 return FNIEMOP_CALL_1(iemOpCommonSse2_FullFull_To_Full, &g_iemAImpl_paddd); 9970 9970 } 9971 9971
Note:
See TracChangeset
for help on using the changeset viewer.