Changeset 100838 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 9, 2023 5:25:44 PM (18 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h
r100836 r100838 12495 12495 { \ 12496 12496 case IEMMODE_16BIT: \ 12497 IEM_MC_BEGIN(2, 2); \12497 IEM_MC_BEGIN(2, 3); \ 12498 12498 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \ 12499 12499 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 12500 12500 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \ 12501 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12501 12502 \ 12502 12503 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 12503 12504 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 12504 IEM_MC_MEM_MAP (pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \12505 IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12505 12506 IEM_MC_FETCH_EFLAGS(EFlags); \ 12506 12507 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU16, pu16Dst, pEFlags); \ 12507 12508 \ 12508 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW); \12509 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); \ 12509 12510 IEM_MC_COMMIT_EFLAGS(EFlags); \ 12510 12511 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ … … 12513 12514 \ 12514 12515 case IEMMODE_32BIT: \ 12515 IEM_MC_BEGIN(2, 2); \12516 IEM_MC_BEGIN(2, 3); \ 12516 12517 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \ 12517 12518 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 12518 12519 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \ 12520 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12519 12521 \ 12520 12522 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 12521 12523 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 12522 IEM_MC_MEM_MAP (pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \12524 IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12523 12525 IEM_MC_FETCH_EFLAGS(EFlags); \ 12524 12526 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU32, pu32Dst, pEFlags); \ 12525 12527 \ 12526 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW); \12528 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); \ 12527 12529 IEM_MC_COMMIT_EFLAGS(EFlags); \ 12528 12530 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ … … 12531 12533 \ 12532 12534 case IEMMODE_64BIT: \ 12533 IEM_MC_BEGIN(2, 2); \12535 IEM_MC_BEGIN(2, 3); \ 12534 12536 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \ 12535 12537 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 12536 12538 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \ 12539 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12537 12540 \ 12538 12541 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 12539 12542 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \ 12540 IEM_MC_MEM_MAP (pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \12543 IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12541 12544 IEM_MC_FETCH_EFLAGS(EFlags); \ 12542 12545 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU64, pu64Dst, pEFlags); \ 12543 12546 \ 12544 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW); \12547 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); \ 12545 12548 IEM_MC_COMMIT_EFLAGS(EFlags); \ 12546 12549 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ … … 12559 12562 { \ 12560 12563 case IEMMODE_16BIT: \ 12561 IEM_MC_BEGIN(2, 2); \12564 IEM_MC_BEGIN(2, 3); \ 12562 12565 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \ 12563 12566 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 12564 12567 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \ 12568 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12565 12569 \ 12566 12570 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 12567 12571 IEMOP_HLP_DONE_DECODING(); \ 12568 IEM_MC_MEM_MAP (pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \12572 IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12569 12573 IEM_MC_FETCH_EFLAGS(EFlags); \ 12570 12574 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU16, pu16Dst, pEFlags); \ 12571 12575 \ 12572 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW); \12576 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); \ 12573 12577 IEM_MC_COMMIT_EFLAGS(EFlags); \ 12574 12578 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ … … 12577 12581 \ 12578 12582 case IEMMODE_32BIT: \ 12579 IEM_MC_BEGIN(2, 2); \12583 IEM_MC_BEGIN(2, 3); \ 12580 12584 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \ 12581 12585 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 12582 12586 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \ 12587 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12583 12588 \ 12584 12589 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 12585 12590 IEMOP_HLP_DONE_DECODING(); \ 12586 IEM_MC_MEM_MAP (pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \12591 IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12587 12592 IEM_MC_FETCH_EFLAGS(EFlags); \ 12588 12593 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU32, pu32Dst, pEFlags); \ 12589 12594 \ 12590 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW); \12595 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); \ 12591 12596 IEM_MC_COMMIT_EFLAGS(EFlags); \ 12592 12597 IEM_MC_ADVANCE_RIP_AND_FINISH(); \ … … 12595 12600 \ 12596 12601 case IEMMODE_64BIT: \ 12597 IEM_MC_BEGIN(2, 2); \12602 IEM_MC_BEGIN(2, 3); \ 12598 12603 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \ 12599 12604 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 12600 12605 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); \ 12606 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12601 12607 \ 12602 12608 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 12603 12609 IEMOP_HLP_DONE_DECODING(); \ 12604 IEM_MC_MEM_MAP (pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/); \12610 IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12605 12611 IEM_MC_FETCH_EFLAGS(EFlags); \ 12606 12612 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU64, pu64Dst, pEFlags); \ 12607 12613 \ 12608 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW); \12614 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); \ 12609 12615 IEM_MC_COMMIT_EFLAGS(EFlags); \ 12610 12616 IEM_MC_ADVANCE_RIP_AND_FINISH(); \
Note:
See TracChangeset
for help on using the changeset viewer.