VirtualBox

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


Ignore:
Timestamp:
Jul 2, 2022 12:02:30 AM (3 years ago)
Author:
vboxsync
Message:

VMM/IEM: [v]pmovmskb. bugref:9898

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

Legend:

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

    r95473 r95483  
    18441844/** @name Media (SSE/MMX/AVX) operation: Move Byte Mask
    18451845 * @{ */
    1846 IEM_DECL_IMPL_DEF(void, iemAImpl_pmovmskb_u64,(PCX86FXSTATE pFpuState, uint64_t *pu64Dst, uint64_t const *pu64Src));
    1847 IEM_DECL_IMPL_DEF(void, iemAImpl_pmovmskb_u128,(PCX86FXSTATE pFpuState, uint64_t *pu64Dst, PCRTUINT128U pu128Src));
     1846IEM_DECL_IMPL_DEF(void, iemAImpl_pmovmskb_u64,(uint64_t *pu64Dst, uint64_t const *puSrc));
     1847IEM_DECL_IMPL_DEF(void, iemAImpl_pmovmskb_u128,(uint64_t *pu64Dst, PCRTUINT128U puSrc));
     1848#ifndef IEM_WITHOUT_ASSEMBLY
     1849IEM_DECL_IMPL_DEF(void, iemAImpl_vpmovmskb_u256,(uint64_t *pu64Dst, PCRTUINT256U puSrc));
     1850#endif
     1851IEM_DECL_IMPL_DEF(void, iemAImpl_vpmovmskb_u256_fallback,(uint64_t *pu64Dst, PCRTUINT256U puSrc));
    18481852/** @} */
    18491853
     
    25012505 * For use during decoding.
    25022506 */
    2503 #define IEM_GET_MODRM_REG(a_pVCpu, a_bRm) ( (((a_bRm) >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | (a_pVCpu)->iem.s.uRexReg )
     2507#define IEM_GET_MODRM_REG(a_pVCpu, a_bRm)   ( (((a_bRm) >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | (a_pVCpu)->iem.s.uRexReg )
    25042508/**
    25052509 * Gets the r/m part of a ModR/M encoding as a register index, with REX.B added in.
     
    25072511 * For use during decoding.
    25082512 */
    2509 #define IEM_GET_MODRM_RM(a_pVCpu, a_bRm)  ( ((a_bRm) & X86_MODRM_RM_MASK) | (a_pVCpu)->iem.s.uRexB )
     2513#define IEM_GET_MODRM_RM(a_pVCpu, a_bRm)    ( ((a_bRm) & X86_MODRM_RM_MASK) | (a_pVCpu)->iem.s.uRexB )
     2514
     2515/**
     2516 * Gets the register (reg) part of a ModR/M encoding, without REX.R.
     2517 *
     2518 * For use during decoding.
     2519 */
     2520#define IEM_GET_MODRM_REG_8(a_bRm)          ( (((a_bRm) >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) )
     2521/**
     2522 * Gets the r/m part of a ModR/M encoding as a register index, without REX.B.
     2523 *
     2524 * For use during decoding.
     2525 */
     2526#define IEM_GET_MODRM_RM_8(a_bRm)           ( ((a_bRm) & X86_MODRM_RM_MASK) )
    25102527
    25112528/**
  • trunk/src/VBox/VMM/include/IEMMc.h

    r95473 r95483  
    159159        if (pVCpu->cpum.GstCtx.cr0 & X86_CR0_TS) \
    160160            return iemRaiseDeviceNotAvailable(pVCpu); \
     161        if (pVCpu->cpum.GstCtx.XState.x87.FSW & X86_FSW_ES) \
     162            return iemRaiseMathFault(pVCpu); \
    161163    } while (0)
    162164#define IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO() \
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