Changeset 100844 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Aug 9, 2023 8:17:43 PM (16 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h
r100843 r100844 11562 11562 * We're accessing memory. 11563 11563 */ 11564 IEM_MC_BEGIN(3, 3);11564 IEM_MC_BEGIN(3, 4); 11565 11565 IEM_MC_ARG(uint8_t *, pu8Dst, 0); 11566 11566 IEM_MC_ARG(uint8_t *, pu8Reg, 1); … … 11568 11568 IEM_MC_LOCAL(uint8_t, u8RegCopy); 11569 11569 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11570 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 11570 11571 11571 11572 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11572 11573 IEMOP_HLP_DONE_DECODING(); 11573 IEM_MC_MEM_MAP (pu8Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);11574 IEM_MC_MEM_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 11574 11575 IEM_MC_FETCH_GREG_U8(u8RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm)); 11575 11576 IEM_MC_REF_LOCAL(pu8Reg, u8RegCopy); … … 11580 11581 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u8_locked, pu8Dst, pu8Reg, pEFlags); 11581 11582 11582 IEM_MC_MEM_COMMIT_AND_UNMAP (pu8Dst, IEM_ACCESS_DATA_RW);11583 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu8Dst, bUnmapInfo); 11583 11584 IEM_MC_COMMIT_EFLAGS(EFlags); 11584 11585 IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_REG(pVCpu, bRm), u8RegCopy); … … 11664 11665 { 11665 11666 case IEMMODE_16BIT: 11666 IEM_MC_BEGIN(3, 3);11667 IEM_MC_BEGIN(3, 4); 11667 11668 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 11668 11669 IEM_MC_ARG(uint16_t *, pu16Reg, 1); 11669 11670 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 11670 11671 IEM_MC_LOCAL(uint16_t, u16RegCopy); 11671 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11672 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11673 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 11672 11674 11673 11675 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11674 11676 IEMOP_HLP_DONE_DECODING(); 11675 IEM_MC_MEM_MAP (pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);11677 IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 11676 11678 IEM_MC_FETCH_GREG_U16(u16RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm)); 11677 11679 IEM_MC_REF_LOCAL(pu16Reg, u16RegCopy); … … 11682 11684 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u16_locked, pu16Dst, pu16Reg, pEFlags); 11683 11685 11684 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW);11686 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); 11685 11687 IEM_MC_COMMIT_EFLAGS(EFlags); 11686 11688 IEM_MC_STORE_GREG_U16(IEM_GET_MODRM_REG(pVCpu, bRm), u16RegCopy); … … 11690 11692 11691 11693 case IEMMODE_32BIT: 11692 IEM_MC_BEGIN(3, 3);11694 IEM_MC_BEGIN(3, 4); 11693 11695 IEM_MC_ARG(uint32_t *, pu32Dst, 0); 11694 11696 IEM_MC_ARG(uint32_t *, pu32Reg, 1); … … 11696 11698 IEM_MC_LOCAL(uint32_t, u32RegCopy); 11697 11699 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11700 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 11698 11701 11699 11702 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11700 11703 IEMOP_HLP_DONE_DECODING(); 11701 IEM_MC_MEM_MAP (pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);11704 IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 11702 11705 IEM_MC_FETCH_GREG_U32(u32RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm)); 11703 11706 IEM_MC_REF_LOCAL(pu32Reg, u32RegCopy); … … 11708 11711 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u32_locked, pu32Dst, pu32Reg, pEFlags); 11709 11712 11710 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW);11713 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); 11711 11714 IEM_MC_COMMIT_EFLAGS(EFlags); 11712 11715 IEM_MC_STORE_GREG_U32(IEM_GET_MODRM_REG(pVCpu, bRm), u32RegCopy); … … 11716 11719 11717 11720 case IEMMODE_64BIT: 11718 IEM_MC_BEGIN(3, 3);11721 IEM_MC_BEGIN(3, 4); 11719 11722 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 11720 11723 IEM_MC_ARG(uint64_t *, pu64Reg, 1); … … 11722 11725 IEM_MC_LOCAL(uint64_t, u64RegCopy); 11723 11726 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 11727 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 11724 11728 11725 11729 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 11726 11730 IEMOP_HLP_DONE_DECODING(); 11727 IEM_MC_MEM_MAP (pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);11731 IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 11728 11732 IEM_MC_FETCH_GREG_U64(u64RegCopy, IEM_GET_MODRM_REG(pVCpu, bRm)); 11729 11733 IEM_MC_REF_LOCAL(pu64Reg, u64RegCopy); … … 11734 11738 IEM_MC_CALL_VOID_AIMPL_3(iemAImpl_xadd_u64_locked, pu64Dst, pu64Reg, pEFlags); 11735 11739 11736 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW);11740 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); 11737 11741 IEM_MC_COMMIT_EFLAGS(EFlags); 11738 11742 IEM_MC_STORE_GREG_U64(IEM_GET_MODRM_REG(pVCpu, bRm), u64RegCopy); … … 12376 12380 IEMOP_MNEMONIC(cmpxchg8b, "cmpxchg8b Mq"); 12377 12381 12378 IEM_MC_BEGIN(4, 3);12382 IEM_MC_BEGIN(4, 5); 12379 12383 IEM_MC_ARG(uint64_t *, pu64MemDst, 0); 12380 12384 IEM_MC_ARG(PRTUINT64U, pu64EaxEdx, 1); … … 12383 12387 IEM_MC_LOCAL(RTUINT64U, u64EaxEdx); 12384 12388 IEM_MC_LOCAL(RTUINT64U, u64EbxEcx); 12385 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 12389 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 12390 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12386 12391 12387 12392 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 12388 12393 IEMOP_HLP_DONE_DECODING(); 12389 IEM_MC_MEM_MAP (pu64MemDst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);12394 IEM_MC_MEM_MAP_U64_RW(pu64MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12390 12395 12391 12396 IEM_MC_FETCH_GREG_U32(u64EaxEdx.s.Lo, X86_GREG_xAX); … … 12404 12409 IEM_MC_CALL_VOID_AIMPL_4(iemAImpl_cmpxchg8b, pu64MemDst, pu64EaxEdx, pu64EbxEcx, pEFlags); 12405 12410 12406 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64MemDst, IEM_ACCESS_DATA_RW);12411 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64MemDst, bUnmapInfo); 12407 12412 IEM_MC_COMMIT_EFLAGS(EFlags); 12408 12413 IEM_MC_IF_EFL_BIT_NOT_SET(X86_EFL_ZF) {
Note:
See TracChangeset
for help on using the changeset viewer.