VirtualBox

Changeset 99339 in vbox


Ignore:
Timestamp:
Apr 7, 2023 12:37:28 PM (20 months ago)
Author:
vboxsync
Message:

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

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

Legend:

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

    r99338 r99339  
    26612661    'IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT':             McBlock.parseMcGeneric,
    26622662    'IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT':                       McBlock.parseMcGeneric,
    2663     'IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT':                     McBlock.parseMcGeneric,
    26642663    'IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT':                     McBlock.parseMcGeneric,
    26652664    'IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE':              McBlock.parseMcGeneric,
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h

    r99338 r99339  
    171171        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
    172172        IEM_MC_ARG(PCRTUINT128U,                puSrc, 1);
    173         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     173        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    174174        IEM_MC_PREPARE_SSE_USAGE();
    175175        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
     
    192192        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    193193        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    194         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     194        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    195195        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    196196
     
    230230        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
    231231        IEM_MC_ARG(PCRTUINT128U,                puSrc, 1);
    232         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     232        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    233233        IEM_MC_PREPARE_SSE_USAGE();
    234234        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
     
    251251        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    252252        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    253         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     253        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    254254        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    255255
     
    695695        IEM_MC_ARG(PCRTUINT128U, puSrc,  1); \
    696696        IEM_MC_ARG(PCRTUINT128U, puMask, 2); \
    697         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();  \
     697        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();  \
    698698        IEM_MC_PREPARE_SSE_USAGE();  \
    699699        IEM_MC_REF_XREG_U128(puDst,  IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    720720        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    721721        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41); \
    722         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT(); \
     722        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \
    723723        IEM_MC_PREPARE_SSE_USAGE(); \
    724724        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     
    790790        IEM_MC_ARG(PCRTUINT128U,                puSrc2,  1);
    791791        IEM_MC_ARG(uint32_t *,                  pEFlags, 2);
    792         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     792        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    793793        IEM_MC_PREPARE_SSE_USAGE();
    794794        IEM_MC_REF_XREG_U128_CONST(puSrc1,      IEM_GET_MODRM_REG(pVCpu, bRm));
     
    813813        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    814814        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    815         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     815        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    816816        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    817817
     
    910910        IEM_MC_ARG(PRTUINT128U,                 puDst, 0); \
    911911        IEM_MC_ARG(uint64_t,    uSrc, 1); \
    912         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();  \
     912        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();  \
    913913        IEM_MC_PREPARE_SSE_USAGE();  \
    914914        IEM_MC_FETCH_XREG_U64(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm), 0 /* a_iQword */); \
     
    932932        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); \
    933933        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41); \
    934         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT(); \
     934        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT(); \
    935935        IEM_MC_PREPARE_SSE_USAGE(); \
    936936        IEM_MC_FETCH_MEM_U## a_SrcWidth (uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); \
     
    10451045        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    10461046        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    1047         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     1047        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    10481048        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
    10491049
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h

    r99338 r99339  
    116116        IEM_MC_ARG(PCRTUINT128U,                puSrc,               1);
    117117        IEM_MC_ARG_CONST(uint8_t,               bImmArg, /*=*/ bImm, 2);
    118         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     118        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    119119        IEM_MC_PREPARE_SSE_USAGE();
    120120        IEM_MC_REF_XREG_U128(puDst,             IEM_GET_MODRM_REG(pVCpu, bRm));
     
    139139        IEM_MC_ARG_CONST(uint8_t,               bImmArg, /*=*/ bImm, 2);
    140140        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    141         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     141        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    142142        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    143143
     
    179179        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    pSrc,           Src,    2);
    180180        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    3);
    181         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     181        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    182182        IEM_MC_PREPARE_SSE_USAGE();
    183183        IEM_MC_REF_MXCSR(pfMxcsr);
     
    208208        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    3);
    209209        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    210         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     210        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    211211        IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(Src.uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    212212
     
    331331        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    pSrc,           Src,    2);
    332332        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    3);
    333         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     333        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    334334        IEM_MC_PREPARE_SSE_USAGE();
    335335        IEM_MC_REF_MXCSR(pfMxcsr);
     
    360360        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    3);
    361361        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    362         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     362        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    363363        IEM_MC_FETCH_MEM_XMM_U32(Src.uSrc2, 0 /*a_iDword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    364364
     
    396396        IEM_MC_ARG_LOCAL_REF(PCIEMMEDIAF2XMMSRC,    pSrc,           Src,    2);
    397397        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    3);
    398         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     398        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    399399        IEM_MC_PREPARE_SSE_USAGE();
    400400        IEM_MC_REF_MXCSR(pfMxcsr);
     
    425425        IEM_MC_ARG_CONST(uint8_t,                   bImmArg, /*=*/ bImm,    3);
    426426        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    427         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     427        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    428428        IEM_MC_FETCH_MEM_XMM_U64(Src.uSrc2, 0 /*a_iQword */, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    429429
     
    556556        IEM_MC_BEGIN(0, 1);
    557557        IEM_MC_LOCAL(uint8_t,   uValue);
    558         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     558        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    559559        IEM_MC_PREPARE_SSE_USAGE();
    560560        IEM_MC_FETCH_XREG_U8(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 15 /*a_iByte*/);
     
    575575        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    576576        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    577         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     577        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    578578        IEM_MC_PREPARE_SSE_USAGE();
    579579
     
    600600        IEM_MC_BEGIN(0, 1);
    601601        IEM_MC_LOCAL(uint16_t,  uValue);
    602         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     602        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    603603        IEM_MC_PREPARE_SSE_USAGE();
    604604        IEM_MC_FETCH_XREG_U16(uValue, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 7 /*a_iWord*/);
     
    619619        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    620620        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    621         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     621        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    622622        IEM_MC_PREPARE_SSE_USAGE();
    623623
     
    651651            IEM_MC_BEGIN(0, 1);
    652652            IEM_MC_LOCAL(uint64_t,  uSrc);
    653             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     653            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    654654            IEM_MC_PREPARE_SSE_USAGE();
    655655            IEM_MC_FETCH_XREG_U64(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 1 /*a_iQword*/);
     
    670670            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    671671            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    672             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     672            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    673673            IEM_MC_PREPARE_SSE_USAGE();
    674674
     
    698698            IEM_MC_BEGIN(0, 1);
    699699            IEM_MC_LOCAL(uint32_t,  uSrc);
    700             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     700            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    701701            IEM_MC_PREPARE_SSE_USAGE();
    702702            IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
     
    717717            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    718718            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    719             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     719            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    720720            IEM_MC_PREPARE_SSE_USAGE();
    721721            IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
     
    742742        IEM_MC_BEGIN(0, 1);
    743743        IEM_MC_LOCAL(uint32_t,  uSrc);
    744         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     744        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    745745        IEM_MC_PREPARE_SSE_USAGE();
    746746        IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
     
    761761        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    762762        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    763         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     763        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    764764        IEM_MC_PREPARE_SSE_USAGE();
    765765        IEM_MC_FETCH_XREG_U32(uSrc, IEM_GET_MODRM_REG(pVCpu, bRm), bImm & 3 /*a_iDword*/);
     
    795795        IEM_MC_BEGIN(0, 1);
    796796        IEM_MC_LOCAL(uint8_t,   uSrc);
    797         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     797        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    798798        IEM_MC_PREPARE_SSE_USAGE();
    799799        IEM_MC_FETCH_GREG_U8(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
     
    814814        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    815815        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    816         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     816        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    817817        IEM_MC_PREPARE_SSE_USAGE();
    818818
     
    840840        IEM_MC_LOCAL(uint8_t,   uSrcSel);
    841841        IEM_MC_LOCAL(uint8_t,   uDstSel);
    842         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     842        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    843843        IEM_MC_PREPARE_SSE_USAGE();
    844844        IEM_MC_ASSIGN(uSrcSel, bImm);
     
    867867        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    868868        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    869         IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     869        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    870870        IEM_MC_PREPARE_SSE_USAGE();
    871871
     
    902902            IEM_MC_BEGIN(0, 1);
    903903            IEM_MC_LOCAL(uint64_t,  uSrc);
    904             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     904            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    905905            IEM_MC_PREPARE_SSE_USAGE();
    906906            IEM_MC_FETCH_GREG_U64(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
     
    921921            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    922922            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    923             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     923            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    924924            IEM_MC_PREPARE_SSE_USAGE();
    925925
     
    949949            IEM_MC_BEGIN(0, 1);
    950950            IEM_MC_LOCAL(uint32_t,  uSrc);
    951             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     951            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    952952            IEM_MC_PREPARE_SSE_USAGE();
    953953            IEM_MC_FETCH_GREG_U32(uSrc, IEM_GET_MODRM_RM(pVCpu, bRm));
     
    968968            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    969969            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    970             IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT();
     970            IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
    971971            IEM_MC_PREPARE_SSE_USAGE();
    972972
  • trunk/src/VBox/VMM/include/IEMMc.h

    r99338 r99339  
    114114    } while (0)
    115115#define IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT() \
    116     do { \
    117         if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    118             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    119             return iemRaiseUndefinedOpcode(pVCpu); \
    120         if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
    121             return iemRaiseDeviceNotAvailable(pVCpu); \
    122     } while (0)
    123 #define IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT() \
    124116    do { \
    125117        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r99338 r99339  
    578578#define IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT()           do { (void)fMcBegin; } while (0)
    579579#define IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT()           do { (void)fMcBegin; } while (0)
    580 #define IEM_MC_MAYBE_RAISE_SSE41_RELATED_XCPT()         do { (void)fMcBegin; } while (0)
    581580#define IEM_MC_MAYBE_RAISE_SSE42_RELATED_XCPT()         do { (void)fMcBegin; } while (0)
    582581#define IEM_MC_MAYBE_RAISE_AESNI_RELATED_XCPT()         do { (void)fMcBegin; } while (0)
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