Changeset 105253 in vbox
- Timestamp:
- Jul 10, 2024 8:29:28 AM (5 months ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r105252 r105253 17220 17220 17221 17221 /** 17222 * RCPPS 17223 */ 17224 #ifdef IEM_WITHOUT_ASSEMBLY 17222 * [V]RCPPS 17223 */ 17225 17224 static uint32_t iemAImpl_rcp_worker(PRTFLOAT32U pr32Res, uint32_t fMxcsr, PCRTFLOAT32U pr32Val) 17226 17225 { … … 17242 17241 17243 17242 17243 #ifdef IEM_WITHOUT_ASSEMBLY 17244 17244 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_rcpps_u128,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCX86XMMREG puSrc2)) 17245 17245 { … … 17251 17251 | iemAImpl_rcp_worker(&pResult->ar32[3], uMxCsrIn, &puSrc2->ar32[3]); 17252 17252 } 17253 #endif 17254 17255 17256 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vrcpps_u128_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc)) 17257 { 17258 return iemAImpl_rcp_worker(&pResult->ar32[0], uMxCsrIn, &puSrc->ar32[0]) 17259 | iemAImpl_rcp_worker(&pResult->ar32[1], uMxCsrIn, &puSrc->ar32[1]) 17260 | iemAImpl_rcp_worker(&pResult->ar32[2], uMxCsrIn, &puSrc->ar32[2]) 17261 | iemAImpl_rcp_worker(&pResult->ar32[3], uMxCsrIn, &puSrc->ar32[3]); 17262 } 17263 17264 17265 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vrcpps_u256_fallback,(uint32_t uMxCsrIn, PX86YMMREG pResult, PCX86YMMREG puSrc)) 17266 { 17267 return iemAImpl_rcp_worker(&pResult->ar32[0], uMxCsrIn, &puSrc->ar32[0]) 17268 | iemAImpl_rcp_worker(&pResult->ar32[1], uMxCsrIn, &puSrc->ar32[1]) 17269 | iemAImpl_rcp_worker(&pResult->ar32[2], uMxCsrIn, &puSrc->ar32[2]) 17270 | iemAImpl_rcp_worker(&pResult->ar32[3], uMxCsrIn, &puSrc->ar32[3]) 17271 | iemAImpl_rcp_worker(&pResult->ar32[4], uMxCsrIn, &puSrc->ar32[4]) 17272 | iemAImpl_rcp_worker(&pResult->ar32[5], uMxCsrIn, &puSrc->ar32[5]) 17273 | iemAImpl_rcp_worker(&pResult->ar32[6], uMxCsrIn, &puSrc->ar32[6]) 17274 | iemAImpl_rcp_worker(&pResult->ar32[7], uMxCsrIn, &puSrc->ar32[7]); 17275 } 17253 17276 17254 17277 17255 17278 /** 17256 * RCPSS 17257 */ 17279 * [V]RCPSS 17280 */ 17281 #ifdef IEM_WITHOUT_ASSEMBLY 17258 17282 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_rcpss_u128_r32,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2)) 17259 17283 { … … 17264 17288 } 17265 17289 #endif 17290 17291 17292 IEM_DECL_IMPL_DEF(uint32_t, iemAImpl_vrcpss_u128_r32_fallback,(uint32_t uMxCsrIn, PX86XMMREG pResult, PCX86XMMREG puSrc1, PCRTFLOAT32U pr32Src2)) 17293 { 17294 pResult->ar32[1] = puSrc1->ar32[1]; 17295 pResult->ar32[2] = puSrc1->ar32[2]; 17296 pResult->ar32[3] = puSrc1->ar32[3]; 17297 return iemAImpl_rcp_worker(&pResult->ar32[0], uMxCsrIn, pr32Src2); 17298 } 17266 17299 17267 17300 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h
r105252 r105253 3009 3009 /* Opcode VEX.F2.0F 0x52 - invalid */ 3010 3010 3011 3011 3012 /** Opcode VEX.0F 0x53 - vrcpps Vps, Wps */ 3012 FNIEMOP_STUB(iemOp_vrcpps_Vps_Wps); 3013 FNIEMOP_DEF(iemOp_vrcpps_Vps_Wps) 3014 { 3015 IEMOP_MNEMONIC2(VEX_RM, VRCPPS, vrcpps, Vps, Wps, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0); 3016 IEMOPMEDIAF2_INIT_VARS( vrcpps); 3017 return FNIEMOP_CALL_1(iemOpCommonAvxAvx2_Vx_Wx, IEM_SELECT_HOST_OR_FALLBACK(fAvx, &s_Host, &s_Fallback)); 3018 } 3019 3020 3013 3021 /* Opcode VEX.66.0F 0x53 - invalid */ 3022 3023 3014 3024 /** Opcode VEX.F3.0F 0x53 - vrcpss Vss, Hss, Wss */ 3015 FNIEMOP_STUB(iemOp_vrcpss_Vss_Hss_Wss); 3025 FNIEMOP_DEF(iemOp_vrcpss_Vss_Hss_Wss) 3026 { 3027 IEMOP_MNEMONIC3(VEX_RVM, VRCPSS, vrcpss, Vps, Hps, Wss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, 0); 3028 return FNIEMOP_CALL_1(iemOpCommonAvx_Vx_Hx_R32, 3029 IEM_SELECT_HOST_OR_FALLBACK(fAvx, iemAImpl_vrcpss_u128_r32, iemAImpl_vrcpss_u128_r32_fallback)); 3030 } 3031 3032 3016 3033 /* Opcode VEX.F2.0F 0x53 - invalid */ 3017 3034 -
trunk/src/VBox/VMM/include/IEMInternal.h
r105252 r105253 4613 4613 FNIEMAIMPLMEDIAF2U128 iemAImpl_vsqrtpd_u128, iemAImpl_vsqrtpd_u128_fallback; 4614 4614 FNIEMAIMPLMEDIAF2U128 iemAImpl_vrsqrtps_u128, iemAImpl_vrsqrtps_u128_fallback; 4615 FNIEMAIMPLMEDIAF2U128 iemAImpl_vrcpps_u128, iemAImpl_vrcpps_u128_fallback; 4615 4616 FNIEMAIMPLMEDIAF3U128 iemAImpl_vaddsubps_u128, iemAImpl_vaddsubps_u128_fallback; 4616 4617 FNIEMAIMPLMEDIAF3U128 iemAImpl_vaddsubpd_u128, iemAImpl_vaddsubpd_u128_fallback; … … 4633 4634 FNIEMAIMPLFPAVXF3U128R64 iemAImpl_vsqrtsd_u128_r64, iemAImpl_vsqrtsd_u128_r64_fallback; 4634 4635 FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vrsqrtss_u128_r32, iemAImpl_vrsqrtss_u128_r32_fallback; 4636 FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vrcpss_u128_r32, iemAImpl_vrcpss_u128_r32_fallback; 4635 4637 4636 4638 FNIEMAIMPLFPAVXF3U256 iemAImpl_vaddps_u256, iemAImpl_vaddps_u256_fallback; … … 4657 4659 FNIEMAIMPLMEDIAF2U256 iemAImpl_vsqrtpd_u256, iemAImpl_vsqrtpd_u256_fallback; 4658 4660 FNIEMAIMPLMEDIAF2U256 iemAImpl_vrsqrtps_u256, iemAImpl_vrsqrtps_u256_fallback; 4661 FNIEMAIMPLMEDIAF2U256 iemAImpl_vrcpps_u256, iemAImpl_vrcpps_u256_fallback; 4659 4662 /** @} */ 4660 4663
Note:
See TracChangeset
for help on using the changeset viewer.