VirtualBox

Ignore:
Timestamp:
Apr 7, 2023 12:27:07 AM (21 months ago)
Author:
vboxsync
Message:

VMM/IEM: Removed CPUID check from most of the IEM_MC_MAYBE_RAISE_*_RELATED_XCPT macros. bugref:10369

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMMc.h

    r99330 r99331  
    9292    do { \
    9393        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             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fAvx) \
     94            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXSAVE)) \
    9695            return iemRaiseUndefinedOpcode(pVCpu); \
    9796        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    101100    do { \
    102101        if (   (pVCpu->cpum.GstCtx.aXcr[0] & (XSAVE_C_YMM | XSAVE_C_SSE)) != (XSAVE_C_YMM | XSAVE_C_SSE) \
    103             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXSAVE) \
    104             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fAvx2) \
     102            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXSAVE)) \
    105103            return iemRaiseUndefinedOpcode(pVCpu); \
    106104        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    110108    do { \
    111109        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    112             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    113             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fAesNi) \
     110            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    114111            return iemRaiseUndefinedOpcode(pVCpu); \
    115112        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    119116    do { \
    120117        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    121             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    122             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSha) \
     118            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    123119            return iemRaiseUndefinedOpcode(pVCpu); \
    124120        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    128124    do { \
    129125        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    130             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    131             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse42) \
     126            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    132127            return iemRaiseUndefinedOpcode(pVCpu); \
    133128        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    137132    do { \
    138133        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    139             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    140             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse41) \
     134            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    141135            return iemRaiseUndefinedOpcode(pVCpu); \
    142136        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    146140    do { \
    147141        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    148             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    149             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSsse3) \
     142            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    150143            return iemRaiseUndefinedOpcode(pVCpu); \
    151144        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    155148    do { \
    156149        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    157             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    158             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse3) \
     150            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    159151            return iemRaiseUndefinedOpcode(pVCpu); \
    160152        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    164156    do { \
    165157        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    166             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    167             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse2) \
     158            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    168159            return iemRaiseUndefinedOpcode(pVCpu); \
    169160        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
     
    173164    do { \
    174165        if (   (pVCpu->cpum.GstCtx.cr0 & X86_CR0_EM) \
    175             || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR) \
    176             || !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fSse) \
     166            || !(pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSFXSR)) \
    177167            return iemRaiseUndefinedOpcode(pVCpu); \
    178168        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