VirtualBox

Changeset 99335 in vbox for trunk/src


Ignore:
Timestamp:
Apr 7, 2023 12:24:52 PM (22 months ago)
Author:
vboxsync
Message:

VMM/IEM: IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT -> IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT, since the CPUID check was removed they are identical. bugref:10369

Location:
trunk/src/VBox/VMM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py

    r99330 r99335  
    26522652    'IEM_MC_MAYBE_RAISE_AESNI_RELATED_XCPT':                     McBlock.parseMcGeneric,
    26532653    'IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT':                       McBlock.parseMcGeneric,
    2654     'IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT':                      McBlock.parseMcGeneric,
    26552654    'IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE':                   McBlock.parseMcGeneric,
    26562655    'IEM_MC_MAYBE_RAISE_FPU_XCPT':                               McBlock.parseMcGeneric,
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h

    r99324 r99335  
    6060            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc1, uSrc1, 2);
    6161            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 3);
    62             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     62            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    6363            IEM_MC_PREPARE_AVX_USAGE();
    6464            IEM_MC_FETCH_YREG_U256(uSrc1,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    107107            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    108108            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    109             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     109            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    110110            IEM_MC_PREPARE_AVX_USAGE();
    111111
     
    173173            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc1, uSrc1, 1);
    174174            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    175             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     175            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    176176            IEM_MC_PREPARE_AVX_USAGE();
    177177            IEM_MC_FETCH_YREG_U256(uSrc1,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    218218            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    219219            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    220             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     220            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    221221            IEM_MC_PREPARE_AVX_USAGE();
    222222
     
    313313            IEM_MC_ARG_LOCAL_REF(PRTUINT256U,   puDst, uDst, 0);
    314314            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc, uSrc, 1);
    315             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     315            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    316316            IEM_MC_PREPARE_AVX_USAGE();
    317317            IEM_MC_FETCH_YREG_U256(uSrc,    IEM_GET_MODRM_RM(pVCpu, bRm));
     
    353353            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    354354            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    355             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     355            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    356356            IEM_MC_PREPARE_AVX_USAGE();
    357357
     
    26352635            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc,   uSrc,  1);
    26362636
    2637             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     2637            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    26382638            IEM_MC_PREPARE_AVX_USAGE();
    26392639            IEM_MC_FETCH_YREG_U256(uSrc,    IEM_GET_MODRM_RM(pVCpu, bRm));
     
    26862686            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc,   uSrc,  1);
    26872687
    2688             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     2688            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    26892689            IEM_MC_PREPARE_AVX_USAGE();
    26902690            IEM_MC_FETCH_YREG_U256(uSrc,    IEM_GET_MODRM_RM(pVCpu, bRm));
     
    34403440            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc,  uSrc,  1);
    34413441            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm, 2);
    3442             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     3442            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    34433443            IEM_MC_PREPARE_AVX_USAGE();
    34443444            IEM_MC_FETCH_YREG_U256(uSrc,        IEM_GET_MODRM_RM(pVCpu, bRm));
     
    34833483            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    34843484            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm, 2);
    3485             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     3485            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    34863486            IEM_MC_PREPARE_AVX_USAGE();
    34873487
     
    45094509            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2,         2); \
    45104510            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm,   3); \
    4511             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT(); \
     4511            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    45124512            IEM_MC_PREPARE_AVX_USAGE(); \
    45134513            IEM_MC_FETCH_YREG_U256(uSrc1,   IEM_GET_EFFECTIVE_VVVV(pVCpu)); \
     
    45594559            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/  bImm,  3); \
    45604560            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); \
    4561             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT(); \
     4561            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    45624562            IEM_MC_PREPARE_AVX_USAGE(); \
    45634563            IEM_MC_FETCH_MEM_U256_NO_AC(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     
    47604760            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    47614761            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc, uSrc, 1);
    4762             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     4762            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    47634763            IEM_MC_PREPARE_AVX_USAGE();
    47644764            IEM_MC_REF_GREG_U64(puDst,          IEM_GET_MODRM_REG(pVCpu, bRm));
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h

    r99324 r99335  
    272272            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    273273            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    274             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     274            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    275275            IEM_MC_PREPARE_AVX_USAGE();
    276276
     
    375375            IEM_MC_ARG_LOCAL_REF(PRTUINT256U,   puDst, uDst, 0); \
    376376            IEM_MC_ARG(PCRTUINT128U,            puSrc,       1); \
    377             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT(); \
     377            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    378378            IEM_MC_PREPARE_AVX_USAGE(); \
    379379            IEM_MC_REF_XREG_U128_CONST(puSrc, IEM_GET_MODRM_RM(pVCpu, bRm)); \
     
    418418            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    419419            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2); \
    420             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT(); \
     420            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT(); \
    421421            IEM_MC_PREPARE_AVX_USAGE(); \
    422422            IEM_MC_FETCH_MEM_U128(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     
    584584            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    585585            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    586             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     586            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    587587            IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    588588
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap3.cpp.h

    r99324 r99335  
    6363            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    6464            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm, 3);
    65             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     65            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    6666            IEM_MC_PREPARE_AVX_USAGE();
    6767            IEM_MC_FETCH_YREG_U256(uSrc1,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    112112            IEM_MC_ARG_CONST(uint8_t,           bImmArg, /*=*/ bImm, 3);
    113113            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    114             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     114            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    115115            IEM_MC_PREPARE_AVX_USAGE();
    116116
     
    653653            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc2, uSrc2, 2);
    654654            IEM_MC_ARG_LOCAL_REF(PCRTUINT256U,  puSrc3, uSrc3, 3);
    655             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     655            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    656656            IEM_MC_PREPARE_AVX_USAGE();
    657657            IEM_MC_FETCH_YREG_U256(uSrc1,   IEM_GET_EFFECTIVE_VVVV(pVCpu));
     
    673673            IEM_MC_ARG(PCRTUINT128U,         puSrc2, 2);
    674674            IEM_MC_ARG(PCRTUINT128U,         puSrc3, 3);
    675             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     675            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    676676            IEM_MC_PREPARE_AVX_USAGE();
    677677            IEM_MC_REF_XREG_U128(puDst,        IEM_GET_MODRM_REG(pVCpu, bRm));
     
    707707
    708708            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    709             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     709            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    710710            IEM_MC_PREPARE_AVX_USAGE();
    711711
     
    734734
    735735            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    736             IEM_MC_MAYBE_RAISE_AVX2_RELATED_XCPT();
     736            IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
    737737            IEM_MC_PREPARE_AVX_USAGE();
    738738
  • trunk/src/VBox/VMM/include/IEMMc.h

    r99333 r99335  
    9090    } while (0)
    9191#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() \
    10092    do { \
    10193        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  
    586586#define IEM_MC_MAYBE_RAISE_SHA_RELATED_XCPT()           do { (void)fMcBegin; } while (0)
    587587#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)
    589588#define IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO()              do { (void)fMcBegin; } while (0)
    590589#define IEM_MC_RAISE_GP0_IF_EFF_ADDR_UNALIGNED(a_EffAddr, a_cbAlign) \
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette