Changeset 96020 in vbox
- Timestamp:
- Aug 4, 2022 8:54:09 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 152815
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r96010 r96020 3631 3631 IEMIMPL_MEDIA_F2 psubusw, 1 3632 3632 IEMIMPL_MEDIA_F2 pmullw, 1 3633 IEMIMPL_MEDIA_F2 pmulld, 0 3633 3634 IEMIMPL_MEDIA_F2 pmulhw, 1 3634 3635 IEMIMPL_MEDIA_F2 pmaddwd, 1 … … 4171 4172 IEMIMPL_MEDIA_OPT_F3 vpackuswb 4172 4173 IEMIMPL_MEDIA_OPT_F3 vpackusdw 4174 IEMIMPL_MEDIA_OPT_F3 vpmullw 4175 IEMIMPL_MEDIA_OPT_F3 vpmulld 4173 4176 4174 4177 -
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r96010 r96020 8675 8675 8676 8676 /* 8677 * PMULLW / VPMULLW 8677 * PMULLW / VPMULLW / PMULLD / VPMULLD 8678 8678 */ 8679 8679 #ifdef IEM_WITHOUT_ASSEMBLY … … 8708 8708 8709 8709 #endif 8710 8711 IEM_DECL_IMPL_DEF(void, iemAImpl_pmulld_u128_fallback,(PCX86FXSTATE pFpuState, PRTUINT128U puDst, PCRTUINT128U puSrc)) 8712 { 8713 RTUINT128U uSrc1 = *puDst; 8714 8715 puDst->ai32[0] = uSrc1.ai32[0] * puSrc->ai32[0]; 8716 puDst->ai32[1] = uSrc1.ai32[1] * puSrc->ai32[1]; 8717 puDst->ai32[2] = uSrc1.ai32[2] * puSrc->ai32[2]; 8718 puDst->ai32[3] = uSrc1.ai32[3] * puSrc->ai32[3]; 8719 RT_NOREF(pFpuState); 8720 } 8721 8722 8723 IEM_DECL_IMPL_DEF(void, iemAImpl_vpmullw_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc1, PCRTUINT128U puSrc2)) 8724 { 8725 puDst->ai16[0] = puSrc1->ai16[0] * puSrc2->ai16[0]; 8726 puDst->ai16[1] = puSrc1->ai16[1] * puSrc2->ai16[1]; 8727 puDst->ai16[2] = puSrc1->ai16[2] * puSrc2->ai16[2]; 8728 puDst->ai16[3] = puSrc1->ai16[3] * puSrc2->ai16[3]; 8729 puDst->ai16[4] = puSrc1->ai16[4] * puSrc2->ai16[4]; 8730 puDst->ai16[5] = puSrc1->ai16[5] * puSrc2->ai16[5]; 8731 puDst->ai16[6] = puSrc1->ai16[6] * puSrc2->ai16[6]; 8732 puDst->ai16[7] = puSrc1->ai16[7] * puSrc2->ai16[7]; 8733 } 8734 8735 8736 IEM_DECL_IMPL_DEF(void, iemAImpl_vpmullw_u256_fallback,(PRTUINT256U puDst, PCRTUINT256U puSrc1, PCRTUINT256U puSrc2)) 8737 { 8738 puDst->ai16[ 0] = puSrc1->ai16[ 0] * puSrc2->ai16[ 0]; 8739 puDst->ai16[ 1] = puSrc1->ai16[ 1] * puSrc2->ai16[ 1]; 8740 puDst->ai16[ 2] = puSrc1->ai16[ 2] * puSrc2->ai16[ 2]; 8741 puDst->ai16[ 3] = puSrc1->ai16[ 3] * puSrc2->ai16[ 3]; 8742 puDst->ai16[ 4] = puSrc1->ai16[ 4] * puSrc2->ai16[ 4]; 8743 puDst->ai16[ 5] = puSrc1->ai16[ 5] * puSrc2->ai16[ 5]; 8744 puDst->ai16[ 6] = puSrc1->ai16[ 6] * puSrc2->ai16[ 6]; 8745 puDst->ai16[ 7] = puSrc1->ai16[ 7] * puSrc2->ai16[ 7]; 8746 puDst->ai16[ 8] = puSrc1->ai16[ 8] * puSrc2->ai16[ 8]; 8747 puDst->ai16[ 9] = puSrc1->ai16[ 9] * puSrc2->ai16[ 9]; 8748 puDst->ai16[10] = puSrc1->ai16[10] * puSrc2->ai16[10]; 8749 puDst->ai16[11] = puSrc1->ai16[11] * puSrc2->ai16[11]; 8750 puDst->ai16[12] = puSrc1->ai16[12] * puSrc2->ai16[12]; 8751 puDst->ai16[13] = puSrc1->ai16[13] * puSrc2->ai16[13]; 8752 puDst->ai16[14] = puSrc1->ai16[14] * puSrc2->ai16[14]; 8753 puDst->ai16[15] = puSrc1->ai16[15] * puSrc2->ai16[15]; 8754 } 8755 8756 8757 IEM_DECL_IMPL_DEF(void, iemAImpl_vpmulld_u128_fallback,(PRTUINT128U puDst, PCRTUINT128U puSrc1, PCRTUINT128U puSrc2)) 8758 { 8759 puDst->ai32[0] = puSrc1->ai32[0] * puSrc2->ai32[0]; 8760 puDst->ai32[1] = puSrc1->ai32[1] * puSrc2->ai32[1]; 8761 puDst->ai32[2] = puSrc1->ai32[2] * puSrc2->ai32[2]; 8762 puDst->ai32[3] = puSrc1->ai32[3] * puSrc2->ai32[3]; 8763 } 8764 8765 8766 IEM_DECL_IMPL_DEF(void, iemAImpl_vpmulld_u256_fallback,(PRTUINT256U puDst, PCRTUINT256U puSrc1, PCRTUINT256U puSrc2)) 8767 { 8768 puDst->ai32[0] = puSrc1->ai32[0] * puSrc2->ai32[0]; 8769 puDst->ai32[1] = puSrc1->ai32[1] * puSrc2->ai32[1]; 8770 puDst->ai32[2] = puSrc1->ai32[2] * puSrc2->ai32[2]; 8771 puDst->ai32[3] = puSrc1->ai32[3] * puSrc2->ai32[3]; 8772 puDst->ai32[4] = puSrc1->ai32[4] * puSrc2->ai32[4]; 8773 puDst->ai32[5] = puSrc1->ai32[5] * puSrc2->ai32[5]; 8774 puDst->ai32[6] = puSrc1->ai32[6] * puSrc2->ai32[6]; 8775 puDst->ai32[7] = puSrc1->ai32[7] * puSrc2->ai32[7]; 8776 } 8710 8777 8711 8778 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h
r96010 r96020 613 613 614 614 /** Opcode 0x66 0x0f 0x38 0x40. */ 615 FNIEMOP_STUB(iemOp_pmulld_Vx_Wx); 615 FNIEMOP_DEF(iemOp_pmulld_Vx_Wx) 616 { 617 IEMOP_MNEMONIC2(RM, PMULLD, pmulld, Vx, Wx, DISOPTYPE_HARMLESS | DISOPTYPE_SSE, IEMOPHINT_IGNORES_OP_SIZES); 618 return FNIEMOP_CALL_1(iemOpCommonSse41_FullFull_To_Full, 619 IEM_SELECT_HOST_OR_FALLBACK(fSse41, iemAImpl_pmulld_u128, iemAImpl_pmulld_u128_fallback)); 620 } 621 622 616 623 /** Opcode 0x66 0x0f 0x38 0x41. */ 617 624 FNIEMOP_STUB(iemOp_phminposuw_Vdq_Wdq); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h
r96010 r96020 3903 3903 3904 3904 /* Opcode VEX.0F 0xd5 - invalid */ 3905 3906 3905 3907 /** Opcode VEX.66.0F 0xd5 - vpmullw Vx, Hx, Wx */ 3906 FNIEMOP_STUB(iemOp_vpmullw_Vx_Hx_Wx); 3908 FNIEMOP_DEF(iemOp_vpmullw_Vx_Hx_Wx) 3909 { 3910 IEMOP_MNEMONIC3(VEX_RVM, VPMULLW, vpmullw, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0); 3911 IEMOPMEDIAOPTF3_INIT_VARS(vpmullw); 3912 return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_Opt, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback)); 3913 } 3914 3915 3907 3916 /* Opcode VEX.F3.0F 0xd5 - invalid */ 3908 3917 /* Opcode VEX.F2.0F 0xd5 - invalid */ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h
r96010 r96020 454 454 455 455 /** Opcode VEX.66.0F38 0x40. */ 456 FNIEMOP_STUB(iemOp_vpmulld_Vx_Hx_Wx); 456 FNIEMOP_DEF(iemOp_vpmulld_Vx_Hx_Wx) 457 { 458 IEMOP_MNEMONIC3(VEX_RVM, VPMULLD, vpmulld, Vx, Hx, Wx, DISOPTYPE_HARMLESS, 0); 459 IEMOPMEDIAOPTF3_INIT_VARS(vpmulld); 460 return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Hx_Wx_Opt, IEM_SELECT_HOST_OR_FALLBACK(fAvx2, &s_Host, &s_Fallback)); 461 } 462 463 457 464 /** Opcode VEX.66.0F38 0x41. */ 458 465 FNIEMOP_STUB(iemOp_vphminposuw_Vdq_Wdq); -
trunk/src/VBox/VMM/include/IEMInternal.h
r96010 r96020 1799 1799 FNIEMAIMPLMEDIAF2U128 iemAImpl_psubd_u128; 1800 1800 FNIEMAIMPLMEDIAF2U128 iemAImpl_psubq_u128; 1801 FNIEMAIMPLMEDIAF2U128 iemAImpl_pmullw_u128, iemAImpl_pmulhw_u128; 1801 FNIEMAIMPLMEDIAF2U128 iemAImpl_pmullw_u128, iemAImpl_pmullw_u128_fallback; 1802 FNIEMAIMPLMEDIAF2U128 iemAImpl_pmulhw_u128; 1803 FNIEMAIMPLMEDIAF2U128 iemAImpl_pmulld_u128, iemAImpl_pmulld_u128_fallback; 1802 1804 FNIEMAIMPLMEDIAF2U128 iemAImpl_pmaddwd_u128; 1803 1805 FNIEMAIMPLMEDIAF2U128 iemAImpl_pminub_u128; … … 1856 1858 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpackuswb_u128, iemAImpl_vpackuswb_u128_fallback; 1857 1859 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpackusdw_u128, iemAImpl_vpackusdw_u128_fallback; 1860 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpmullw_u128, iemAImpl_vpmullw_u128_fallback; 1861 FNIEMAIMPLMEDIAOPTF3U128 iemAImpl_vpmulld_u128, iemAImpl_vpmulld_u128_fallback; 1858 1862 1859 1863 FNIEMAIMPLMEDIAF3U256 iemAImpl_vpshufb_u256, iemAImpl_vpshufb_u256_fallback; … … 1894 1898 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpackuswb_u256, iemAImpl_vpackuswb_u256_fallback; 1895 1899 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpackusdw_u256, iemAImpl_vpackusdw_u256_fallback; 1900 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpmullw_u256, iemAImpl_vpmullw_u256_fallback; 1901 FNIEMAIMPLMEDIAOPTF3U256 iemAImpl_vpmulld_u256, iemAImpl_vpmulld_u256_fallback; 1896 1902 /** @} */ 1897 1903
Note:
See TracChangeset
for help on using the changeset viewer.