VirtualBox

Changeset 104183 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Apr 5, 2024 12:55:25 PM (10 months ago)
Author:
vboxsync
Message:

VMM/IEM: Get rid of IEM_MC_IF_MXCSR_XCPT_PENDING() and IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT() and replace with IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT(). This makes the microcode blocks leaner and the recompiler doesn't has to do as much state keeping. Furthermore there is now exactly one way of doing SSE/AVX floating point operations when it comes to exception handling, bugref:10641

File:
1 edited

Legend:

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

    r104177 r104183  
    187187            return iemRaiseUndefinedOpcode(pVCpu); \
    188188        } \
    189     } while (0)
    190 #define IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT() \
    191     do { \
    192         if (pVCpu->cpum.GstCtx.cr4 & X86_CR4_OSXMMEEXCPT)\
    193             return iemRaiseSimdFpException(pVCpu); \
    194         return iemRaiseUndefinedOpcode(pVCpu); \
    195189    } while (0)
    196190
     
    31613155#define IEM_MC_IF_FCW_IM() \
    31623156    if (pVCpu->cpum.GstCtx.XState.x87.FCW & X86_FCW_IM) {
    3163 #define IEM_MC_IF_MXCSR_XCPT_PENDING() \
    3164         if ((  ~((pVCpu->cpum.GstCtx.XState.x87.MXCSR & X86_MXCSR_XCPT_MASK) >> X86_MXCSR_XCPT_MASK_SHIFT) \
    3165              & (pVCpu->cpum.GstCtx.XState.x87.MXCSR & X86_MXCSR_XCPT_FLAGS)) != 0) {
    31663157
    31673158#define IEM_MC_ELSE()                                   } else {
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