VirtualBox

Changeset 100841 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Aug 9, 2023 7:53:31 PM (18 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

    r100840 r100841  
    94359435        {
    94369436            case IEMMODE_16BIT:
    9437                 IEM_MC_BEGIN(4, 2);
     9437                IEM_MC_BEGIN(4, 3);
    94389438                IEM_MC_ARG(uint16_t *,              pu16Dst,                0);
    94399439                IEM_MC_ARG(uint16_t,                u16Src,                 1);
     
    94419441                IEM_MC_ARG_LOCAL_EFLAGS(            pEFlags, EFlags,        3);
    94429442                IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     9443                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    94439444
    94449445                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1);
     
    94489449                IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, bRm));
    94499450                IEM_MC_FETCH_EFLAGS(EFlags);
    9450                 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     9451                IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    94519452                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags);
    94529453
    9453                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
     9454                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo);
    94549455                IEM_MC_COMMIT_EFLAGS(EFlags);
    94559456                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    94589459
    94599460            case IEMMODE_32BIT:
    9460                 IEM_MC_BEGIN(4, 2);
     9461                IEM_MC_BEGIN(4, 3);
    94619462                IEM_MC_ARG(uint32_t *,              pu32Dst,                0);
    94629463                IEM_MC_ARG(uint32_t,                u32Src,                 1);
     
    94649465                IEM_MC_ARG_LOCAL_EFLAGS(            pEFlags, EFlags,        3);
    94659466                IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     9467                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    94669468
    94679469                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1);
     
    94719473                IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, bRm));
    94729474                IEM_MC_FETCH_EFLAGS(EFlags);
    9473                 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     9475                IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    94749476                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU32, pu32Dst, u32Src, cShiftArg, pEFlags);
    94759477
    9476                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
     9478                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo);
    94779479                IEM_MC_COMMIT_EFLAGS(EFlags);
    94789480                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    94819483
    94829484            case IEMMODE_64BIT:
    9483                 IEM_MC_BEGIN(4, 2);
     9485                IEM_MC_BEGIN(4, 3);
    94849486                IEM_MC_ARG(uint64_t *,              pu64Dst,                0);
    94859487                IEM_MC_ARG(uint64_t,                u64Src,                 1);
     
    94879489                IEM_MC_ARG_LOCAL_EFLAGS(            pEFlags, EFlags,        3);
    94889490                IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     9491                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    94899492
    94909493                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1);
     
    94949497                IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, bRm));
    94959498                IEM_MC_FETCH_EFLAGS(EFlags);
    9496                 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     9499                IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    94979500                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags);
    94989501
    9499                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
     9502                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo);
    95009503                IEM_MC_COMMIT_EFLAGS(EFlags);
    95019504                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    95849587        {
    95859588            case IEMMODE_16BIT:
    9586                 IEM_MC_BEGIN(4, 2);
     9589                IEM_MC_BEGIN(4, 3);
    95879590                IEM_MC_ARG(uint16_t *,              pu16Dst,                0);
    95889591                IEM_MC_ARG(uint16_t,                u16Src,                 1);
     
    95909593                IEM_MC_ARG_LOCAL_EFLAGS(            pEFlags, EFlags,        3);
    95919594                IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     9595                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    95929596
    95939597                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    95969600                IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX);
    95979601                IEM_MC_FETCH_EFLAGS(EFlags);
    9598                 IEM_MC_MEM_MAP(pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     9602                IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    95999603                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags);
    96009604
    9601                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu16Dst, IEM_ACCESS_DATA_RW);
     9605                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo);
    96029606                IEM_MC_COMMIT_EFLAGS(EFlags);
    96039607                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    96069610
    96079611            case IEMMODE_32BIT:
    9608                 IEM_MC_BEGIN(4, 2);
     9612                IEM_MC_BEGIN(4, 3);
    96099613                IEM_MC_ARG(uint32_t *,              pu32Dst,                0);
    96109614                IEM_MC_ARG(uint32_t,                u32Src,                 1);
     
    96129616                IEM_MC_ARG_LOCAL_EFLAGS(            pEFlags, EFlags,        3);
    96139617                IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     9618                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    96149619
    96159620                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    96189623                IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX);
    96199624                IEM_MC_FETCH_EFLAGS(EFlags);
    9620                 IEM_MC_MEM_MAP(pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     9625                IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    96219626                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU32, pu32Dst, u32Src, cShiftArg, pEFlags);
    96229627
    9623                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu32Dst, IEM_ACCESS_DATA_RW);
     9628                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo);
    96249629                IEM_MC_COMMIT_EFLAGS(EFlags);
    96259630                IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    96289633
    96299634            case IEMMODE_64BIT:
    9630                 IEM_MC_BEGIN(4, 2);
     9635                IEM_MC_BEGIN(4, 3);
    96319636                IEM_MC_ARG(uint64_t *,              pu64Dst,                0);
    96329637                IEM_MC_ARG(uint64_t,                u64Src,                 1);
     
    96349639                IEM_MC_ARG_LOCAL_EFLAGS(            pEFlags, EFlags,        3);
    96359640                IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
     9641                IEM_MC_LOCAL(uint8_t,               bUnmapInfo);
    96369642
    96379643                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    96409646                IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX);
    96419647                IEM_MC_FETCH_EFLAGS(EFlags);
    9642                 IEM_MC_MEM_MAP(pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0);
     9648                IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    96439649                IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags);
    96449650
    9645                 IEM_MC_MEM_COMMIT_AND_UNMAP(pu64Dst, IEM_ACCESS_DATA_RW);
     9651                IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo);
    96469652                IEM_MC_COMMIT_EFLAGS(EFlags);
    96479653                IEM_MC_ADVANCE_RIP_AND_FINISH();
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