VirtualBox

Changeset 100842 in vbox


Ignore:
Timestamp:
Aug 9, 2023 8:00:55 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

    r100841 r100842  
    1022710227    else
    1022810228    {
    10229         IEM_MC_BEGIN(4, 3);
     10229        IEM_MC_BEGIN(4, 4);
    1023010230        IEM_MC_ARG(uint8_t *,       pu8Dst,                 0);
    1023110231        IEM_MC_ARG(uint8_t *,       pu8Al,                  1);
     
    1023410234        IEM_MC_LOCAL(RTGCPTR,       GCPtrEffDst);
    1023510235        IEM_MC_LOCAL(uint8_t,       u8Al);
     10236        IEM_MC_LOCAL(uint8_t,       bUnmapInfo);
    1023610237
    1023710238        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1023810239        IEMOP_HLP_DONE_DECODING();
    10239         IEM_MC_MEM_MAP(pu8Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     10240        IEM_MC_MEM_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1024010241        IEM_MC_FETCH_GREG_U8(u8Src, IEM_GET_MODRM_REG(pVCpu, bRm));
    1024110242        IEM_MC_FETCH_GREG_U8(u8Al, X86_GREG_xAX);
     
    1024710248            IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg_u8_locked, pu8Dst, pu8Al, u8Src, pEFlags);
    1024810249
    10249         IEM_MC_MEM_COMMIT_AND_UNMAP(pu8Dst, IEM_ACCESS_DATA_RW);
     10250        IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu8Dst, bUnmapInfo);
    1025010251        IEM_MC_COMMIT_EFLAGS(EFlags);
    1025110252        IEM_MC_STORE_GREG_U8(X86_GREG_xAX, u8Al);
     
    1035510356        {
    1035610357            case IEMMODE_16BIT:
    10357                 IEM_MC_BEGIN(4, 3);
     10358                IEM_MC_BEGIN(4, 4);
    1035810359                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
    1035910360                IEM_MC_ARG(uint16_t *,      pu16Ax,                 1);
     
    1036210363                IEM_MC_LOCAL(RTGCPTR,       GCPtrEffDst);
    1036310364                IEM_MC_LOCAL(uint16_t,      u16Ax);
     10365                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    1036410366
    1036510367                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1036610368                IEMOP_HLP_DONE_DECODING();
    10367                 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     10369                IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1036810370                IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, bRm));
    1036910371                IEM_MC_FETCH_GREG_U16(u16Ax, X86_GREG_xAX);
     
    1037510377                    IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg_u16_locked, pu16Dst, pu16Ax, u16Src, pEFlags);
    1037610378
    10377                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
     10379                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo);
    1037810380                IEM_MC_COMMIT_EFLAGS(EFlags);
    1037910381                IEM_MC_STORE_GREG_U16(X86_GREG_xAX, u16Ax);
     
    1038310385
    1038410386            case IEMMODE_32BIT:
    10385                 IEM_MC_BEGIN(4, 3);
     10387                IEM_MC_BEGIN(4, 4);
    1038610388                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
    1038710389                IEM_MC_ARG(uint32_t *,      pu32Eax,                 1);
     
    1039010392                IEM_MC_LOCAL(RTGCPTR,       GCPtrEffDst);
    1039110393                IEM_MC_LOCAL(uint32_t,      u32Eax);
     10394                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    1039210395
    1039310396                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1039410397                IEMOP_HLP_DONE_DECODING();
    10395                 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     10398                IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1039610399                IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, bRm));
    1039710400                IEM_MC_FETCH_GREG_U32(u32Eax, X86_GREG_xAX);
     
    1040310406                    IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg_u32_locked, pu32Dst, pu32Eax, u32Src, pEFlags);
    1040410407
    10405                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
     10408                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo);
    1040610409                IEM_MC_COMMIT_EFLAGS(EFlags);
    1040710410
     
    1041510418
    1041610419            case IEMMODE_64BIT:
    10417                 IEM_MC_BEGIN(4, 3);
     10420                IEM_MC_BEGIN(4, 4);
    1041810421                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
    1041910422                IEM_MC_ARG(uint64_t *,      pu64Rax,                1);
     
    1042610429                IEM_MC_LOCAL(RTGCPTR,       GCPtrEffDst);
    1042710430                IEM_MC_LOCAL(uint64_t,      u64Rax);
     10431                IEM_MC_LOCAL(uint8_t,       bUnmapInfo);
    1042810432
    1042910433                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    1043010434                IEMOP_HLP_DONE_DECODING();
    10431                 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     10435                IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1043210436                IEM_MC_FETCH_GREG_U64(u64Rax, X86_GREG_xAX);
    1043310437                IEM_MC_FETCH_EFLAGS(EFlags);
     
    1044710451#endif
    1044810452
    10449                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
     10453                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo);
    1045010454                IEM_MC_COMMIT_EFLAGS(EFlags);
    1045110455                IEM_MC_STORE_GREG_U64(X86_GREG_xAX, u64Rax);
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