Changeset 96099 in vbox
- Timestamp:
- Aug 7, 2022 7:22:43 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 152898
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r96094 r96099 3717 3717 IEMIMPL_MEDIA_OPT_F2 pavgw, 1 3718 3718 IEMIMPL_MEDIA_OPT_F2 psadbw, 1 3719 IEMIMPL_MEDIA_OPT_F2 pmuldq, 0 3719 3720 3720 3721 … … 4209 4210 IEMIMPL_MEDIA_OPT_F3 vpmulhrsw 4210 4211 IEMIMPL_MEDIA_OPT_F3 vpsadbw 4212 IEMIMPL_MEDIA_OPT_F3 vpmuldq 4211 4213 4212 4214 -
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r96094 r96099 13165 13165 13166 13166 /* 13167 * PMULDQ / VPMULDQ 13168 */ 13169 IEM_DECL_IMPL_DEF(void, iemAImpl_pmuldq_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc)) 13170 { 13171 RTUINT128U uSrc1 = *puDst; 13172 13173 puDst->au64[0] = (int64_t)uSrc1.ai32[0] * puSrc->ai32[0]; 13174 puDst->au64[1] = (int64_t)uSrc1.ai32[2] * puSrc->ai32[2]; 13175 } 13176 13177 IEM_DECL_IMPL_DEF(void, iemAImpl_vpmuldq_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc1, PCRTUINT128U puSrc2)) 13178 { 13179 RTUINT128U uSrc1 = *puSrc1; 13180 RTUINT128U uSrc2 = *puSrc2; 13181 13182 puDst->au64[0] = (int64_t)uSrc1.ai32[0] * uSrc2.ai32[0]; 13183 puDst->au64[1] = (int64_t)uSrc1.ai32[2] * uSrc2.ai32[2]; 13184 } 13185 13186 IEM_DECL_IMPL_DEF(void, iemAImpl_vpmuldq_u256_fallback,(PRTUINT256U puDst, PCRTUINT256U puSrc1, PCRTUINT256U puSrc2)) 13187 { 13188 RTUINT256U uSrc1 = *puSrc1; 13189 RTUINT256U uSrc2 = *puSrc2; 13190 13191 puDst->au64[0] = (int64_t)uSrc1.ai32[0] * uSrc2.ai32[0]; 13192 puDst->au64[1] = (int64_t)uSrc1.ai32[2] * uSrc2.ai32[2]; 13193 puDst->au64[2] = (int64_t)uSrc1.ai32[4] * uSrc2.ai32[4]; 13194 puDst->au64[3] = (int64_t)uSrc1.ai32[6] * uSrc2.ai32[6]; 13195 } 13196 13197 13198 /* 13167 13199 * CRC32 (SEE 4.2). 13168 13200 */ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h
r96087 r96099 669 669 /* Opcode 0x66 0x0f 0x38 0x26 - invalid */ 670 670 /* Opcode 0x66 0x0f 0x38 0x27 - invalid */ 671 672 671 673 /** Opcode 0x66 0x0f 0x38 0x28. */ 672 FNIEMOP_STUB(iemOp_pmuldq_Vx_Wx); 674 FNIEMOP_DEF(iemOp_pmuldq_Vx_Wx) 675 { 676 IEMOP_MNEMONIC2(RM, PMULDQ, pmuldq, Vx, Wx, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES); 677 return FNIEMOP_CALL_1(iemOpCommonSse41Opt_FullFull_To_Full, 678 IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmuldq_u128, iemAImpl_pmuldq_u128_fallback)); 679 } 673 680 674 681 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h
r96087 r96099 366 366 /* Opcode VEX.66.0F38 0x26 - invalid */ 367 367 /* Opcode VEX.66.0F38 0x27 - invalid */ 368 369 368 370 /** Opcode VEX.66.0F38 0x28. */ 369 FNIEMOP_STUB(iemOp_vpmuldq_Vx_Hx_Wx); 371 FNIEMOP_DEF(iemOp_vpmuldq_Vx_Hx_Wx) 372 { 373 IEMOP_MNEMONIC3(VEX_RVM, VPMULDQ, vpmuldq, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0); 374 IEMOPMEDIAOPTF3_INIT_VARS(vpmuldq); 375 return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_Opt, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback)); 376 } 370 377 371 378 -
trunk/src/VBox/VMM/include/IEMInternal.h
r96094 r96099 1856 1856 FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pavgb_u128, iemAImpl_pavgw_u128; 1857 1857 FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_psadbw_u128; 1858 FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_pmuldq_u128, iemAImpl_pmuldq_u128_fallback; 1858 1859 1859 1860 FNIEMAIMPLMEDIAF3U128 iemAImpl_vpshufb_u128, iemAImpl_vpshufb_u128_fallback; … … 1912 1913 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpmulhrsw_u128, iemAImpl_vpmulhrsw_u128_fallback; 1913 1914 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpsadbw_u128, iemAImpl_vpsadbw_u128_fallback; 1915 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpmuldq_u128, iemAImpl_vpmuldq_u128_fallback; 1914 1916 1915 1917 FNIEMAIMPLMEDIAOPTF2U128 iemAImpl_vpabsb_u128, iemAImpl_vpabsb_u128_fallback; … … 1972 1974 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpmulhrsw_u256, iemAImpl_vpmulhrsw_u256_fallback; 1973 1975 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpsadbw_u256, iemAImpl_vpsadbw_u256_fallback; 1976 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpmuldq_u256, iemAImpl_vpmuldq_u256_fallback; 1974 1977 1975 1978 FNIEMAIMPLMEDIAOPTF2U256 iemAImpl_vpabsb_u256, iemAImpl_vpabsb_u256_fallback;
Note:
See TracChangeset
for help on using the changeset viewer.