Changeset 96392 in vbox
- Timestamp:
- Aug 22, 2022 8:01:49 AM (2 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllAImpl.asm
r96384 r96392 4634 4634 IEMIMPL_FP_F2 hsubps, 3 4635 4635 IEMIMPL_FP_F2 hsubpd, 3 4636 IEMIMPL_FP_F2 addsubps, 3 4637 IEMIMPL_FP_F2 addsubpd, 3 4638 4636 4639 4637 4640 ;; -
trunk/src/VBox/VMM/VMMAll/IEMAllAImplC.cpp
r96384 r96392 14975 14975 } 14976 14976 #endif 14977 14978 14979 /** 14980 * ADDSUBPS 14981 */ 14982 #ifdef IEM_WITHOUT_ASSEMBLY 14983 IEM_DECL_IMPL_DEF(void, iemAImpl_addsubps_u128,(PX86FXSTATE pFpuState, PIEMSSERESULT pResult, PCX86XMMREG puSrc1, PCX86XMMREG puSrc2)) 14984 { 14985 RT_NOREF(puSrc1); 14986 14987 pResult->MXCSR = iemAImpl_subps_u128_worker(&pResult->uResult.ar32[0], pFpuState->MXCSR, &puSrc1->ar32[0], &puSrc2->ar32[0]); 14988 pResult->MXCSR |= iemAImpl_addps_u128_worker(&pResult->uResult.ar32[1], pFpuState->MXCSR, &puSrc1->ar32[1], &puSrc2->ar32[1]); 14989 pResult->MXCSR |= iemAImpl_subps_u128_worker(&pResult->uResult.ar32[2], pFpuState->MXCSR, &puSrc1->ar32[2], &puSrc2->ar32[2]); 14990 pResult->MXCSR |= iemAImpl_addps_u128_worker(&pResult->uResult.ar32[3], pFpuState->MXCSR, &puSrc1->ar32[3], &puSrc2->ar32[3]); 14991 } 14992 #endif 14993 14994 14995 /** 14996 * ADDSUBPD 14997 */ 14998 #ifdef IEM_WITHOUT_ASSEMBLY 14999 IEM_DECL_IMPL_DEF(void, iemAImpl_addsubpd_u128,(PX86FXSTATE pFpuState, PIEMSSERESULT pResult, PCX86XMMREG puSrc1, PCX86XMMREG puSrc2)) 15000 { 15001 RT_NOREF(puSrc1); 15002 15003 pResult->MXCSR = iemAImpl_subpd_u128_worker(&pResult->uResult.ar64[0], pFpuState->MXCSR, &puSrc1->ar64[0], &puSrc2->ar64[0]); 15004 pResult->MXCSR |= iemAImpl_addpd_u128_worker(&pResult->uResult.ar64[1], pFpuState->MXCSR, &puSrc1->ar64[1], &puSrc2->ar64[1]); 15005 } 15006 #endif -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r96384 r96392 10339 10339 10340 10340 /* Opcode 0x0f 0xd0 - invalid */ 10341 10342 10341 10343 /** Opcode 0x66 0x0f 0xd0 - addsubpd Vpd, Wpd */ 10342 FNIEMOP_STUB(iemOp_addsubpd_Vpd_Wpd); 10344 FNIEMOP_DEF(iemOp_addsubpd_Vpd_Wpd) 10345 { 10346 IEMOP_MNEMONIC2(RM, ADDSUBPD, addsubpd, Vpd, Wpd, DISOPTYPE_HARMLESS, 0); 10347 return FNIEMOP_CALL_1(iemOpCommonSse3Fp_FullFull_To_Full, iemAImpl_addsubpd_u128); 10348 } 10349 10350 10343 10351 /* Opcode 0xf3 0x0f 0xd0 - invalid */ 10352 10353 10344 10354 /** Opcode 0xf2 0x0f 0xd0 - addsubps Vps, Wps */ 10345 FNIEMOP_STUB(iemOp_addsubps_Vps_Wps); 10355 FNIEMOP_DEF(iemOp_addsubps_Vps_Wps) 10356 { 10357 IEMOP_MNEMONIC2(RM, ADDSUBPS, addsubps, Vps, Wps, DISOPTYPE_HARMLESS, 0); 10358 return FNIEMOP_CALL_1(iemOpCommonSse3Fp_FullFull_To_Full, iemAImpl_addsubps_u128); 10359 } 10360 10361 10346 10362 10347 10363 /** Opcode 0x0f 0xd1 - psrlw Pq, Qq */ -
trunk/src/VBox/VMM/include/IEMInternal.h
r96384 r96392 2444 2444 FNIEMAIMPLFPSSEF2U128 iemAImpl_sqrtps_u128; 2445 2445 FNIEMAIMPLFPSSEF2U128 iemAImpl_sqrtpd_u128; 2446 FNIEMAIMPLFPSSEF2U128 iemAImpl_addsubps_u128; 2447 FNIEMAIMPLFPSSEF2U128 iemAImpl_addsubpd_u128; 2446 2448 2447 2449 FNIEMAIMPLFPSSEF2U128R32 iemAImpl_addss_u128_r32; … … 2480 2482 FNIEMAIMPLFPAVXF3U128 iemAImpl_vsqrtps_u128, iemAImpl_vsqrtps_u128_fallback; 2481 2483 FNIEMAIMPLFPAVXF3U128 iemAImpl_vsqrtpd_u128, iemAImpl_vsqrtpd_u128_fallback; 2484 FNIEMAIMPLFPAVXF3U128 iemAImpl_vaddsubps_u128, iemAImpl_vaddsubps_u128_fallback; 2485 FNIEMAIMPLFPAVXF3U128 iemAImpl_vaddsubpd_u128, iemAImpl_vaddsubpd_u128_fallback; 2482 2486 2483 2487 FNIEMAIMPLFPAVXF3U128R32 iemAImpl_vaddss_u128_r32, iemAImpl_vaddss_u128_r32_fallback; … … 2512 2516 FNIEMAIMPLFPAVXF3U256 iemAImpl_vhsubps_u256, iemAImpl_vhsubps_u256_fallback; 2513 2517 FNIEMAIMPLFPAVXF3U256 iemAImpl_vhsubpd_u256, iemAImpl_vhsubpd_u256_fallback; 2518 FNIEMAIMPLFPAVXF3U256 iemAImpl_vhaddsubps_u256, iemAImpl_vhaddsubps_u256_fallback; 2519 FNIEMAIMPLFPAVXF3U256 iemAImpl_vhaddsubpd_u256, iemAImpl_vhaddsubpd_u256_fallback; 2514 2520 /** @} */ 2515 2521 -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r96384 r96392 480 480 #define iemAImpl_sqrtps_u128 NULL 481 481 #define iemAImpl_sqrtpd_u128 NULL 482 #define iemAImpl_addsubps_u128 NULL 483 #define iemAImpl_addsubpd_u128 NULL 482 484 483 485 #define iemAImpl_addss_u128_r32 NULL
Note:
See TracChangeset
for help on using the changeset viewer.