- Timestamp:
- Apr 7, 2023 12:24:52 PM (22 months ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r99330 r99335 2652 2652 'IEM_MC_MAYBE_RAISE_AESNI_RELATED_XCPT': McBlock.parseMcGeneric, 2653 2653 'IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT': McBlock.parseMcGeneric, 2654 'IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT': McBlock.parseMcGeneric,2655 2654 'IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE': McBlock.parseMcGeneric, 2656 2655 'IEM_MC_MAYBE_RAISE_FPU_XCPT': McBlock.parseMcGeneric, -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h
r99324 r99335 60 60 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc1, uSrc1, 2); 61 61 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc2, uSrc2, 3); 62 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();62 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 63 63 IEM_MC_PREPARE_AVX_USAGE(); 64 64 IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); … … 107 107 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 108 108 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); 109 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();109 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 110 110 IEM_MC_PREPARE_AVX_USAGE(); 111 111 … … 173 173 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc1, uSrc1, 1); 174 174 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc2, uSrc2, 2); 175 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();175 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 176 176 IEM_MC_PREPARE_AVX_USAGE(); 177 177 IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); … … 218 218 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 219 219 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); 220 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();220 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 221 221 IEM_MC_PREPARE_AVX_USAGE(); 222 222 … … 313 313 IEM_MC_ARG_LOCAL_REF(PRTUINT256U, puDst, uDst, 0); 314 314 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc, uSrc, 1); 315 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();315 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 316 316 IEM_MC_PREPARE_AVX_USAGE(); 317 317 IEM_MC_FETCH_YREG_U256(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); … … 353 353 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 354 354 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); 355 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();355 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 356 356 IEM_MC_PREPARE_AVX_USAGE(); 357 357 … … 2635 2635 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc, uSrc, 1); 2636 2636 2637 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();2637 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 2638 2638 IEM_MC_PREPARE_AVX_USAGE(); 2639 2639 IEM_MC_FETCH_YREG_U256(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); … … 2686 2686 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc, uSrc, 1); 2687 2687 2688 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();2688 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 2689 2689 IEM_MC_PREPARE_AVX_USAGE(); 2690 2690 IEM_MC_FETCH_YREG_U256(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); … … 3440 3440 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc, uSrc, 1); 3441 3441 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 2); 3442 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();3442 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 3443 3443 IEM_MC_PREPARE_AVX_USAGE(); 3444 3444 IEM_MC_FETCH_YREG_U256(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); … … 3483 3483 IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2); 3484 3484 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 2); 3485 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();3485 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 3486 3486 IEM_MC_PREPARE_AVX_USAGE(); 3487 3487 … … 4509 4509 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc2, uSrc2, 2); \ 4510 4510 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); \ 4511 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT(); \4511 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \ 4512 4512 IEM_MC_PREPARE_AVX_USAGE(); \ 4513 4513 IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); \ … … 4559 4559 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); \ 4560 4560 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); \ 4561 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT(); \4561 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \ 4562 4562 IEM_MC_PREPARE_AVX_USAGE(); \ 4563 4563 IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \ … … 4760 4760 IEM_MC_LOCAL(RTUINT256U, uSrc); 4761 4761 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc, uSrc, 1); 4762 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();4762 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 4763 4763 IEM_MC_PREPARE_AVX_USAGE(); 4764 4764 IEM_MC_REF_GREG_U64(puDst, IEM_GET_MODRM_REG(pVCpu, bRm)); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h
r99324 r99335 272 272 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 273 273 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); 274 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();274 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 275 275 IEM_MC_PREPARE_AVX_USAGE(); 276 276 … … 375 375 IEM_MC_ARG_LOCAL_REF(PRTUINT256U, puDst, uDst, 0); \ 376 376 IEM_MC_ARG(PCRTUINT128U, puSrc, 1); \ 377 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT(); \377 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \ 378 378 IEM_MC_PREPARE_AVX_USAGE(); \ 379 379 IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); \ … … 418 418 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \ 419 419 IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2); \ 420 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT(); \420 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \ 421 421 IEM_MC_PREPARE_AVX_USAGE(); \ 422 422 IEM_MC_FETCH_MEM_U128(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \ … … 584 584 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 585 585 IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2); 586 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();586 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 587 587 IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE(); 588 588 -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap3.cpp.h
r99324 r99335 63 63 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc2, uSrc2, 2); 64 64 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 65 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();65 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 66 66 IEM_MC_PREPARE_AVX_USAGE(); 67 67 IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); … … 112 112 IEM_MC_ARG_CONST(uint8_t, bImmArg, /*=*/ bImm, 3); 113 113 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); 114 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();114 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 115 115 IEM_MC_PREPARE_AVX_USAGE(); 116 116 … … 653 653 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc2, uSrc2, 2); 654 654 IEM_MC_ARG_LOCAL_REF(PCRTUINT256U, puSrc3, uSrc3, 3); 655 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();655 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 656 656 IEM_MC_PREPARE_AVX_USAGE(); 657 657 IEM_MC_FETCH_YREG_U256(uSrc1, IEM_GET_EFFECTIVE_VVVV(pVCpu)); … … 673 673 IEM_MC_ARG(PCRTUINT128U, puSrc2, 2); 674 674 IEM_MC_ARG(PCRTUINT128U, puSrc3, 3); 675 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();675 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 676 676 IEM_MC_PREPARE_AVX_USAGE(); 677 677 IEM_MC_REF_XREG_U128(puDst, IEM_GET_MODRM_REG(pVCpu, bRm)); … … 707 707 708 708 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); 709 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();709 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 710 710 IEM_MC_PREPARE_AVX_USAGE(); 711 711 … … 734 734 735 735 IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx); 736 IEM_MC_MAYBE_RAISE_AVX 2_RELATED_XCPT();736 IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); 737 737 IEM_MC_PREPARE_AVX_USAGE(); 738 738 -
trunk/src/VBox/VMM/include/IEMMc.h
r99333 r99335 90 90 } while (0) 91 91 #define IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT() \ 92 do { \93 if ( (pVCpu->cpum.GstCtx.aXcr[0] & (XSAVE_C_YMM | XSAVE_C_SSE)) != (XSAVE_C_YMM | XSAVE_C_SSE) \94 || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXSAVE)) \95 return iemRaiseUndefinedOpcode(pVCpu); \96 if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \97 return iemRaiseDeviceNotAvailable(pVCpu); \98 } while (0)99 #define IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT() \100 92 do { \ 101 93 if ( (pVCpu->cpum.GstCtx.aXcr[0] & (XSAVE_C_YMM | XSAVE_C_SSE)) != (XSAVE_C_YMM | XSAVE_C_SSE) \ -
trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp
r99330 r99335 586 586 #define IEM_MC_MAYBE_RAISE_SHA_RELATED_XCPT() do { (void)fMcBegin; } while (0) 587 587 #define IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT() do { (void)fMcBegin; } while (0) 588 #define IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT() do { (void)fMcBegin; } while (0)589 588 #define IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO() do { (void)fMcBegin; } while (0) 590 589 #define IEM_MC_RAISE_GP0_IF_EFF_ADDR_UNALIGNED(a_EffAddr, a_cbAlign) \
Note:
See TracChangeset
for help on using the changeset viewer.