VirtualBox

Changeset 101951 in vbox


Ignore:
Timestamp:
Nov 8, 2023 2:07:54 AM (17 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160048
Message:

VMM/IEM: More IEM_MC_ASSIGN elimination. bugref:10371

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

Legend:

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

    r101850 r101951  
    13181318        {
    13191319            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT, 0);
    1320             IEM_MC_ARG(uint8_t,  iEffSeg,         0);
    1321             IEM_MC_ARG(RTGCPTR,  GCPtrInveptDesc, 1);
    1322             IEM_MC_ARG(uint64_t, uInveptType,     2);
    1323             IEM_MC_FETCH_GREG_U64(uInveptType, IEM_GET_MODRM_REG(pVCpu, bRm));
     1320            IEM_MC_ARG(RTGCPTR,         GCPtrInveptDesc,                        1);
    13241321            IEM_MC_CALC_RM_EFF_ADDR(GCPtrInveptDesc, bRm, 0);
    13251322            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13261323            IEMOP_HLP_IN_VMX_OPERATION("invept", kVmxVDiag_Invept);
    13271324            IEMOP_HLP_VMX_INSTR(       "invept", kVmxVDiag_Invept);
    1328             IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     1325            IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
     1326            IEM_MC_ARG(uint64_t,        uInveptType,                            2);
     1327            IEM_MC_FETCH_GREG_U64(uInveptType, IEM_GET_MODRM_REG(pVCpu, bRm));
    13291328            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_VMEXIT | IEM_CIMPL_F_STATUS_FLAGS,
    13301329                                iemCImpl_invept, iEffSeg, GCPtrInveptDesc, uInveptType);
     
    13341333        {
    13351334            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER, 0);
    1336             IEM_MC_ARG(uint8_t,  iEffSeg,         0);
    1337             IEM_MC_ARG(RTGCPTR,  GCPtrInveptDesc, 1);
    1338             IEM_MC_ARG(uint32_t, uInveptType,     2);
    1339             IEM_MC_FETCH_GREG_U32(uInveptType, IEM_GET_MODRM_REG(pVCpu, bRm));
     1335            IEM_MC_ARG(RTGCPTR,         GCPtrInveptDesc,                        1);
    13401336            IEM_MC_CALC_RM_EFF_ADDR(GCPtrInveptDesc, bRm, 0);
    13411337            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13421338            IEMOP_HLP_IN_VMX_OPERATION("invept", kVmxVDiag_Invept);
    13431339            IEMOP_HLP_VMX_INSTR(       "invept", kVmxVDiag_Invept);
    1344             IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     1340            IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
     1341            IEM_MC_ARG(uint32_t,        uInveptType,                            2);
     1342            IEM_MC_FETCH_GREG_U32(uInveptType, IEM_GET_MODRM_REG(pVCpu, bRm));
    13451343            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_VMEXIT | IEM_CIMPL_F_STATUS_FLAGS,
    13461344                                iemCImpl_invept, iEffSeg, GCPtrInveptDesc, uInveptType);
     
    13691367        {
    13701368            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT, 0);
    1371             IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    1372             IEM_MC_ARG(RTGCPTR,  GCPtrInvvpidDesc, 1);
    1373             IEM_MC_ARG(uint64_t, uInvvpidType,     2);
    1374             IEM_MC_FETCH_GREG_U64(uInvvpidType, IEM_GET_MODRM_REG(pVCpu, bRm));
     1369            IEM_MC_ARG(RTGCPTR,         GCPtrInvvpidDesc,                       1);
    13751370            IEM_MC_CALC_RM_EFF_ADDR(GCPtrInvvpidDesc, bRm, 0);
    13761371            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13771372            IEMOP_HLP_IN_VMX_OPERATION("invvpid", kVmxVDiag_Invvpid);
    13781373            IEMOP_HLP_VMX_INSTR("invvpid", kVmxVDiag_Invvpid);
    1379             IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     1374            IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
     1375            IEM_MC_ARG(uint64_t,        uInvvpidType,                           2);
     1376            IEM_MC_FETCH_GREG_U64(uInvvpidType, IEM_GET_MODRM_REG(pVCpu, bRm));
    13801377            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_VMEXIT | IEM_CIMPL_F_STATUS_FLAGS,
    13811378                                iemCImpl_invvpid, iEffSeg, GCPtrInvvpidDesc, uInvvpidType);
     
    13851382        {
    13861383            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER, 0);
    1387             IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    1388             IEM_MC_ARG(RTGCPTR,  GCPtrInvvpidDesc, 1);
    1389             IEM_MC_ARG(uint32_t, uInvvpidType,     2);
    1390             IEM_MC_FETCH_GREG_U32(uInvvpidType, IEM_GET_MODRM_REG(pVCpu, bRm));
     1384            IEM_MC_ARG(RTGCPTR,         GCPtrInvvpidDesc,                       1);
    13911385            IEM_MC_CALC_RM_EFF_ADDR(GCPtrInvvpidDesc, bRm, 0);
    13921386            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    13931387            IEMOP_HLP_IN_VMX_OPERATION("invvpid", kVmxVDiag_Invvpid);
    13941388            IEMOP_HLP_VMX_INSTR("invvpid", kVmxVDiag_Invvpid);
    1395             IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     1389            IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
     1390            IEM_MC_ARG(uint32_t,        uInvvpidType,                           2);
     1391            IEM_MC_FETCH_GREG_U32(uInvvpidType, IEM_GET_MODRM_REG(pVCpu, bRm));
    13961392            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_VMEXIT | IEM_CIMPL_F_STATUS_FLAGS,
    13971393                                iemCImpl_invvpid, iEffSeg, GCPtrInvvpidDesc, uInvvpidType);
     
    14181414        {
    14191415            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT, 0);
    1420             IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    1421             IEM_MC_ARG(RTGCPTR,  GCPtrInvpcidDesc, 1);
    1422             IEM_MC_ARG(uint64_t, uInvpcidType,     2);
    1423             IEM_MC_FETCH_GREG_U64(uInvpcidType, IEM_GET_MODRM_REG(pVCpu, bRm));
     1416            IEM_MC_ARG(RTGCPTR,         GCPtrInvpcidDesc,                       1);
    14241417            IEM_MC_CALC_RM_EFF_ADDR(GCPtrInvpcidDesc, bRm, 0);
    14251418            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1426             IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     1419            IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
     1420            IEM_MC_ARG(uint64_t,        uInvpcidType,                           2);
     1421            IEM_MC_FETCH_GREG_U64(uInvpcidType, IEM_GET_MODRM_REG(pVCpu, bRm));
    14271422            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_VMEXIT, iemCImpl_invpcid, iEffSeg, GCPtrInvpcidDesc, uInvpcidType);
    14281423            IEM_MC_END();
     
    14311426        {
    14321427            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER, 0);
    1433             IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    1434             IEM_MC_ARG(RTGCPTR,  GCPtrInvpcidDesc, 1);
    1435             IEM_MC_ARG(uint32_t, uInvpcidType,     2);
    1436             IEM_MC_FETCH_GREG_U32(uInvpcidType, IEM_GET_MODRM_REG(pVCpu, bRm));
     1428            IEM_MC_ARG(RTGCPTR,         GCPtrInvpcidDesc,                       1);
    14371429            IEM_MC_CALC_RM_EFF_ADDR(GCPtrInvpcidDesc, bRm, 0);
    14381430            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1439             IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     1431            IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
     1432            IEM_MC_ARG(uint32_t,        uInvpcidType,                           2);
     1433            IEM_MC_FETCH_GREG_U32(uInvpcidType, IEM_GET_MODRM_REG(pVCpu, bRm));
    14401434            IEM_MC_CALL_CIMPL_3(IEM_CIMPL_F_VMEXIT, iemCImpl_invpcid, iEffSeg, GCPtrInvpcidDesc, uInvpcidType);
    14411435            IEM_MC_END();
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h

    r101802 r101951  
    37723772        IEMOP_MNEMONIC(vzeroall, "vzeroall");
    37733773        IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER, 0);
    3774         IEM_MC_LOCAL(uint32_t,  uZero);
    37753774
    37763775        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
     
    37783777        IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE();
    37793778
    3780         IEM_MC_ASSIGN(uZero, 0);
     3779        IEM_MC_LOCAL_CONST(uint32_t, uZero, 0);
    37813780        IEM_MC_STORE_YREG_U32_ZX_VLMAX(0, uZero);
    37823781        IEM_MC_STORE_YREG_U32_ZX_VLMAX(1, uZero);
     
    42904289    IEMOP_MNEMONIC1(VEX_M_MEM, VSTMXCSR, vstmxcsr, Md_WO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    42914290    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER, 0);
    4292     IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    4293     IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     4291    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                               1);
    42944292    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEff, bRm, 0);
    42954293    IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    42964294    IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ();
    4297     IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
     4295    IEM_MC_ARG_CONST(uint8_t,   iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg,    0);
    42984296    IEM_MC_CALL_CIMPL_2(IEM_CIMPL_F_FPU, iemCImpl_vstmxcsr, iEffSeg, GCPtrEff);
    42994297    IEM_MC_END();
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette