Changeset 100841 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 9, 2023 7:53:31 PM (18 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h
r100840 r100841 9435 9435 { 9436 9436 case IEMMODE_16BIT: 9437 IEM_MC_BEGIN(4, 2);9437 IEM_MC_BEGIN(4, 3); 9438 9438 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 9439 9439 IEM_MC_ARG(uint16_t, u16Src, 1); … … 9441 9441 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); 9442 9442 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 9443 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 9443 9444 9444 9445 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); … … 9448 9449 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, bRm)); 9449 9450 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); 9451 9452 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags); 9452 9453 9453 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW);9454 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); 9454 9455 IEM_MC_COMMIT_EFLAGS(EFlags); 9455 9456 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 9458 9459 9459 9460 case IEMMODE_32BIT: 9460 IEM_MC_BEGIN(4, 2);9461 IEM_MC_BEGIN(4, 3); 9461 9462 IEM_MC_ARG(uint32_t *, pu32Dst, 0); 9462 9463 IEM_MC_ARG(uint32_t, u32Src, 1); … … 9464 9465 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); 9465 9466 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 9467 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 9466 9468 9467 9469 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); … … 9471 9473 IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, bRm)); 9472 9474 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); 9474 9476 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU32, pu32Dst, u32Src, cShiftArg, pEFlags); 9475 9477 9476 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW);9478 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); 9477 9479 IEM_MC_COMMIT_EFLAGS(EFlags); 9478 9480 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 9481 9483 9482 9484 case IEMMODE_64BIT: 9483 IEM_MC_BEGIN(4, 2);9485 IEM_MC_BEGIN(4, 3); 9484 9486 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 9485 9487 IEM_MC_ARG(uint64_t, u64Src, 1); … … 9487 9489 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); 9488 9490 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 9491 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 9489 9492 9490 9493 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1); … … 9494 9497 IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, bRm)); 9495 9498 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); 9497 9500 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags); 9498 9501 9499 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW);9502 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); 9500 9503 IEM_MC_COMMIT_EFLAGS(EFlags); 9501 9504 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 9584 9587 { 9585 9588 case IEMMODE_16BIT: 9586 IEM_MC_BEGIN(4, 2);9589 IEM_MC_BEGIN(4, 3); 9587 9590 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 9588 9591 IEM_MC_ARG(uint16_t, u16Src, 1); … … 9590 9593 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); 9591 9594 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 9595 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 9592 9596 9593 9597 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); … … 9596 9600 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 9597 9601 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); 9599 9603 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags); 9600 9604 9601 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW);9605 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); 9602 9606 IEM_MC_COMMIT_EFLAGS(EFlags); 9603 9607 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 9606 9610 9607 9611 case IEMMODE_32BIT: 9608 IEM_MC_BEGIN(4, 2);9612 IEM_MC_BEGIN(4, 3); 9609 9613 IEM_MC_ARG(uint32_t *, pu32Dst, 0); 9610 9614 IEM_MC_ARG(uint32_t, u32Src, 1); … … 9612 9616 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); 9613 9617 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 9618 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 9614 9619 9615 9620 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); … … 9618 9623 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 9619 9624 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); 9621 9626 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU32, pu32Dst, u32Src, cShiftArg, pEFlags); 9622 9627 9623 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW);9628 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); 9624 9629 IEM_MC_COMMIT_EFLAGS(EFlags); 9625 9630 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 9628 9633 9629 9634 case IEMMODE_64BIT: 9630 IEM_MC_BEGIN(4, 2);9635 IEM_MC_BEGIN(4, 3); 9631 9636 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 9632 9637 IEM_MC_ARG(uint64_t, u64Src, 1); … … 9634 9639 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); 9635 9640 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 9641 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 9636 9642 9637 9643 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); … … 9640 9646 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 9641 9647 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); 9643 9649 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags); 9644 9650 9645 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW);9651 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); 9646 9652 IEM_MC_COMMIT_EFLAGS(EFlags); 9647 9653 IEM_MC_ADVANCE_RIP_AND_FINISH();
Note:
See TracChangeset
for help on using the changeset viewer.