VirtualBox

Changeset 100836 in vbox


Ignore:
Timestamp:
Aug 9, 2023 3:06:08 PM (20 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158736
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/IEMAllInstOneByte.cpp.h

    r100835 r100836  
    83628362        {
    83638363            case IEMMODE_16BIT:
    8364                 IEM_MC_BEGIN(3, 2);
     8364                IEM_MC_BEGIN(3, 3);
    83658365                IEM_MC_ARG(uint16_t *,      pu16Dst,            0);
    83668366                IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=1*/1,  1);
    83678367                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags,        2);
    83688368                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     8369                IEM_MC_LOCAL(uint8_t, bUnmapInfo);
    83698370
    83708371                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    83718372                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    8372                 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     8373                IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    83738374                IEM_MC_FETCH_EFLAGS(EFlags);
    83748375                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags);
    83758376
    8376                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
     8377                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo);
    83778378                IEM_MC_COMMIT_EFLAGS(EFlags);
    83788379                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    83818382
    83828383            case IEMMODE_32BIT:
    8383                 IEM_MC_BEGIN(3, 2);
     8384                IEM_MC_BEGIN(3, 3);
    83848385                IEM_MC_ARG(uint32_t *,      pu32Dst,            0);
    83858386                IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=1*/1,  1);
    83868387                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags,        2);
    83878388                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     8389                IEM_MC_LOCAL(uint8_t, bUnmapInfo);
    83888390
    83898391                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    83908392                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    8391                 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     8393                IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    83928394                IEM_MC_FETCH_EFLAGS(EFlags);
    83938395                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags);
    83948396
    8395                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
     8397                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo);
    83968398                IEM_MC_COMMIT_EFLAGS(EFlags);
    83978399                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    84008402
    84018403            case IEMMODE_64BIT:
    8402                 IEM_MC_BEGIN(3, 2);
     8404                IEM_MC_BEGIN(3, 3);
    84038405                IEM_MC_ARG(uint64_t *,      pu64Dst,            0);
    84048406                IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=1*/1,  1);
    84058407                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags,        2);
    84068408                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     8409                IEM_MC_LOCAL(uint8_t, bUnmapInfo);
    84078410
    84088411                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    84098412                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    8410                 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     8413                IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    84118414                IEM_MC_FETCH_EFLAGS(EFlags);
    84128415                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags);
    84138416
    8414                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
     8417                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo);
    84158418                IEM_MC_COMMIT_EFLAGS(EFlags);
    84168419                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    85638566        {
    85648567            case IEMMODE_16BIT:
    8565                 IEM_MC_BEGIN(3, 2);
     8568                IEM_MC_BEGIN(3, 3);
    85668569                IEM_MC_ARG(uint16_t *,  pu16Dst,    0);
    85678570                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
    85688571                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2);
    85698572                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     8573                IEM_MC_LOCAL(uint8_t, bUnmapInfo);
    85708574
    85718575                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    85728576                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85738577                IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX);
    8574                 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     8578                IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    85758579                IEM_MC_FETCH_EFLAGS(EFlags);
    85768580                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags);
    85778581
    8578                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
     8582                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo);
    85798583                IEM_MC_COMMIT_EFLAGS(EFlags);
    85808584                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    85838587
    85848588            case IEMMODE_32BIT:
    8585                 IEM_MC_BEGIN(3, 2);
     8589                IEM_MC_BEGIN(3, 3);
    85868590                IEM_MC_ARG(uint32_t *,  pu32Dst,    0);
    85878591                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
    85888592                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2);
    85898593                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     8594                IEM_MC_LOCAL(uint8_t, bUnmapInfo);
    85908595
    85918596                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    85928597                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85938598                IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX);
    8594                 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     8599                IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    85958600                IEM_MC_FETCH_EFLAGS(EFlags);
    85968601                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags);
    85978602
    8598                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
     8603                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo);
    85998604                IEM_MC_COMMIT_EFLAGS(EFlags);
    86008605                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    86038608
    86048609            case IEMMODE_64BIT:
    8605                 IEM_MC_BEGIN(3, 2);
     8610                IEM_MC_BEGIN(3, 3);
    86068611                IEM_MC_ARG(uint64_t *,  pu64Dst,    0);
    86078612                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
    86088613                IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2);
    86098614                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     8615                IEM_MC_LOCAL(uint8_t, bUnmapInfo);
    86108616
    86118617                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    86128618                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    86138619                IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX);
    8614                 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);
     8620                IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    86158621                IEM_MC_FETCH_EFLAGS(EFlags);
    86168622                IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags);
    86178623
    8618                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
     8624                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo);
    86198625                IEM_MC_COMMIT_EFLAGS(EFlags);
    86208626                IEM_MC_ADVANCE_RIP_AND_FINISH();
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