VirtualBox

Ignore:
Timestamp:
Feb 27, 2024 3:39:36 PM (9 months ago)
Author:
vboxsync
Message:

VMM/IEM: Native translation of IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE() body, bugref:10371

File:
1 edited

Legend:

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

    r103548 r103588  
    17191719        IEM_MC_ARG_CONST(RTGCPTR,  GCPtrEffDst, NIL_RTGCPTR, 1);
    17201720        IEM_MC_FETCH_GREG_U16(u16Tmp, IEM_GET_MODRM_RM(pVCpu, bRm));
    1721         IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, 0, iemCImpl_lmsw, u16Tmp, GCPtrEffDst);
     1721        IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, RT_BIT_64(kIemNativeGstReg_Cr0),
     1722                            iemCImpl_lmsw, u16Tmp, GCPtrEffDst);
    17221723        IEM_MC_END();
    17231724    }
     
    17301731        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    17311732        IEM_MC_FETCH_MEM_U16(u16Tmp, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1732         IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, 0, iemCImpl_lmsw, u16Tmp, GCPtrEffDst);
     1733        IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, RT_BIT_64(kIemNativeGstReg_Cr0),
     1734                            iemCImpl_lmsw, u16Tmp, GCPtrEffDst);
    17331735        IEM_MC_END();
    17341736    }
     
    19781980    IEMOP_MNEMONIC(syscall, "syscall"); /** @todo 286 LOADALL   */
    19791981    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     1982    /** @todo r=aeichner Clobbers cr0 only if this is a 286 LOADALL instruction. */
    19801983    IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK_FAR
    1981                                 | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_END_TB, 0,
    1982                                 iemCImpl_syscall);
     1984                                | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_END_TB,
     1985                                RT_BIT_64(kIemNativeGstReg_Cr0), iemCImpl_syscall);
    19831986}
    19841987
     
    19891992    IEMOP_MNEMONIC(clts, "clts");
    19901993    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1991     IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_VMEXIT, 0, iemCImpl_clts);
     1994    IEM_MC_DEFER_TO_CIMPL_0_RET(IEM_CIMPL_F_VMEXIT, RT_BIT_64(kIemNativeGstReg_Cr0), iemCImpl_clts);
    19921995}
    19931996
     
    33813384    IEMOP_HLP_DONE_DECODING();
    33823385
     3386    /** @todo r=aeichner Split this up as flushing the cr0 is excessive for crX != 0? */
    33833387    if (iCrReg & (2 | 8))
    33843388        IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_VMEXIT, 0,
    33853389                                    iemCImpl_mov_Cd_Rd, iCrReg, IEM_GET_MODRM_RM(pVCpu, bRm));
    33863390    else
    3387         IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, 0,
     3391        IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_MODE | IEM_CIMPL_F_VMEXIT, RT_BIT_64(kIemNativeGstReg_Cr0),
    33883392                                    iemCImpl_mov_Cd_Rd, iCrReg, IEM_GET_MODRM_RM(pVCpu, bRm));
    33893393}
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