VirtualBox

Changeset 100844 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Aug 9, 2023 8:17:43 PM (16 months ago)
Author:
vboxsync
Message:

VMM/IEM: More conversion from IEM_MC_MEM_MAP to IEM_MC_MEM_MAP_XXX. bugref:10369

File:
1 edited

Legend:

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

    r100843 r100844  
    1156211562         * We're accessing memory.
    1156311563         */
    11564         IEM_MC_BEGIN(3, 3);
     11564        IEM_MC_BEGIN(3, 4);
    1156511565        IEM_MC_ARG(uint8_t *,   pu8Dst,          0);
    1156611566        IEM_MC_ARG(uint8_t *,   pu8Reg,          1);
     
    1156811568        IEM_MC_LOCAL(uint8_t,  u8RegCopy);
    1156911569        IEM_MC_LOCAL(RTGCPTR,  GCPtrEffDst);
     11570        IEM_MC_LOCAL(uint8_t,  bUnmapInfo);
    1157011571
    1157111572        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1157211573        IEMOP_HLP_DONE_DECODING();
    11573         IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     11574        IEM_MC_MEM_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1157411575        IEM_MC_FETCH_GREG_U8(u8RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm));
    1157511576        IEM_MC_REF_LOCAL(pu8Reg, u8RegCopy);
     
    1158011581            IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u8_locked, pu8Dst, pu8Reg, pEFlags);
    1158111582
    11582         IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_RW);
     11583        IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu8Dst, bUnmapInfo);
    1158311584        IEM_MC_COMMIT_EFLAGS(EFlags);
    1158411585        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), u8RegCopy);
     
    1166411665        {
    1166511666            case IEMMODE_16BIT:
    11666                 IEM_MC_BEGIN(3, 3);
     11667                IEM_MC_BEGIN(3, 4);
    1166711668                IEM_MC_ARG(uint16_t *,  pu16Dst,         0);
    1166811669                IEM_MC_ARG(uint16_t *,  pu16Reg,         1);
    1166911670                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2);
    1167011671                IEM_MC_LOCAL(uint16_t,  u16RegCopy);
    11671                 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     11672                IEM_MC_LOCAL(RTGCPTR,   GCPtrEffDst);
     11673                IEM_MC_LOCAL(uint8_t,   bUnmapInfo);
    1167211674
    1167311675                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1167411676                IEMOP_HLP_DONE_DECODING();
    11675                 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     11677                IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1167611678                IEM_MC_FETCH_GREG_U16(u16RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm));
    1167711679                IEM_MC_REF_LOCAL(pu16Reg, u16RegCopy);
     
    1168211684                    IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u16_locked, pu16Dst, pu16Reg, pEFlags);
    1168311685
    11684                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
     11686                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo);
    1168511687                IEM_MC_COMMIT_EFLAGS(EFlags);
    1168611688                IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16RegCopy);
     
    1169011692
    1169111693            case IEMMODE_32BIT:
    11692                 IEM_MC_BEGIN(3, 3);
     11694                IEM_MC_BEGIN(3, 4);
    1169311695                IEM_MC_ARG(uint32_t *,  pu32Dst,         0);
    1169411696                IEM_MC_ARG(uint32_t *,  pu32Reg,         1);
     
    1169611698                IEM_MC_LOCAL(uint32_t,  u32RegCopy);
    1169711699                IEM_MC_LOCAL(RTGCPTR,   GCPtrEffDst);
     11700                IEM_MC_LOCAL(uint8_t,   bUnmapInfo);
    1169811701
    1169911702                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1170011703                IEMOP_HLP_DONE_DECODING();
    11701                 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     11704                IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1170211705                IEM_MC_FETCH_GREG_U32(u32RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm));
    1170311706                IEM_MC_REF_LOCAL(pu32Reg, u32RegCopy);
     
    1170811711                    IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u32_locked, pu32Dst, pu32Reg, pEFlags);
    1170911712
    11710                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
     11713                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo);
    1171111714                IEM_MC_COMMIT_EFLAGS(EFlags);
    1171211715                IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32RegCopy);
     
    1171611719
    1171711720            case IEMMODE_64BIT:
    11718                 IEM_MC_BEGIN(3, 3);
     11721                IEM_MC_BEGIN(3, 4);
    1171911722                IEM_MC_ARG(uint64_t *,  pu64Dst,         0);
    1172011723                IEM_MC_ARG(uint64_t *,  pu64Reg,         1);
     
    1172211725                IEM_MC_LOCAL(uint64_t,  u64RegCopy);
    1172311726                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     11727                IEM_MC_LOCAL(uint8_t,   bUnmapInfo);
    1172411728
    1172511729                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1172611730                IEMOP_HLP_DONE_DECODING();
    11727                 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     11731                IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1172811732                IEM_MC_FETCH_GREG_U64(u64RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm));
    1172911733                IEM_MC_REF_LOCAL(pu64Reg, u64RegCopy);
     
    1173411738                    IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u64_locked, pu64Dst, pu64Reg, pEFlags);
    1173511739
    11736                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
     11740                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo);
    1173711741                IEM_MC_COMMIT_EFLAGS(EFlags);
    1173811742                IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64RegCopy);
     
    1237612380    IEMOP_MNEMONIC(cmpxchg8b, "cmpxchg8b Mq");
    1237712381
    12378     IEM_MC_BEGIN(4, 3);
     12382    IEM_MC_BEGIN(4, 5);
    1237912383    IEM_MC_ARG(uint64_t *, pu64MemDst,     0);
    1238012384    IEM_MC_ARG(PRTUINT64U, pu64EaxEdx,     1);
     
    1238312387    IEM_MC_LOCAL(RTUINT64U, u64EaxEdx);
    1238412388    IEM_MC_LOCAL(RTUINT64U, u64EbxEcx);
    12385     IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     12389    IEM_MC_LOCAL(RTGCPTR,   GCPtrEffDst);
     12390    IEM_MC_LOCAL(uint8_t,   bUnmapInfo);
    1238612391
    1238712392    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1238812393    IEMOP_HLP_DONE_DECODING();
    12389     IEM_MC_MEM_MAP(pu64MemDst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     12394    IEM_MC_MEM_MAP_U64_RW(pu64MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1239012395
    1239112396    IEM_MC_FETCH_GREG_U32(u64EaxEdx.s.Lo, X86_GREG_xAX);
     
    1240412409        IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg8b, pu64MemDst, pu64EaxEdx, pu64EbxEcx, pEFlags);
    1240512410
    12406     IEM_MC_MEM_COMMIT_AND_UNMAP(pu64MemDst, IEM_ACCESS_DATA_RW);
     12411    IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64MemDst, bUnmapInfo);
    1240712412    IEM_MC_COMMIT_EFLAGS(EFlags);
    1240812413    IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_ZF) {
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