VirtualBox

Changeset 99333 in vbox for trunk/src


Ignore:
Timestamp:
Apr 7, 2023 12:30:43 AM (22 months ago)
Author:
vboxsync
Message:

VMM/IEM: Use IEMOP_HLP_DONE_DECODING_*EX() rather than IEM_MC_MAYBE_RAISE_PCLMUL_RELATED_XCPT and firends to do the CPUID check. bugref:10369

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h

    r99330 r99333  
    10551055         */
    10561056        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1057         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     1057        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fPclMul);
    10581058        IEM_MC_BEGIN(3, 0);
    10591059        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    10851085        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    10861086        IEM_MC_ARG_CONST(uint8_t,               bImmArg, /*=*/ bImm, 2);
    1087         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     1087        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fPclMul);
    10881088        IEM_MC_MAYBE_RAISE_PCLMUL_RELATED_XCPT();
    10891089        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
  • trunk/src/VBox/VMM/include/IEMMc.h

    r99332 r99333  
    206206            if (pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXMMEEXCPT)\
    207207                return iemRaiseSimdFpException(pVCpu); \
    208             else \
    209                 return iemRaiseUndefinedOpcode(pVCpu); \
     208            return iemRaiseUndefinedOpcode(pVCpu); \
    210209        } \
    211210    } while (0)
     
    214213        if (pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXMMEEXCPT)\
    215214            return iemRaiseSimdFpException(pVCpu); \
    216         else \
    217             return iemRaiseUndefinedOpcode(pVCpu); \
     215        return iemRaiseUndefinedOpcode(pVCpu); \
    218216    } while (0)
    219217#define IEM_MC_MAYBE_RAISE_PCLMUL_RELATED_XCPT() \
    220218    do { \
    221219        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    222             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    223             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fPclMul) \
     220            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    224221            return iemRaiseUndefinedOpcode(pVCpu); \
    225222        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
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