Changeset 108287 in vbox for trunk/src/VBox/VMM/VMMAll/target-x86
- Timestamp:
- Feb 19, 2025 11:35:43 AM (2 months ago)
- svn:sync-xref-src-repo-rev:
- 167630
- Location:
- trunk/src/VBox/VMM/VMMAll/target-x86
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstOneByte-x86.cpp.h
r108269 r108287 124 124 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 125 125 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 126 IEM_MC_MEM_ MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \126 IEM_MC_MEM_SEG_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 127 127 IEM_MC_ARG(uint8_t, u8Src, 2); \ 128 128 IEM_MC_FETCH_GREG_U8(u8Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 144 144 IEM_MC_LOCAL(uint8_t, bMapInfoDst); \ 145 145 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 146 IEM_MC_MEM_ MAP_U8_ATOMIC(pu8Dst, bMapInfoDst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \146 IEM_MC_MEM_SEG_MAP_U8_ATOMIC(pu8Dst, bMapInfoDst, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 147 147 IEM_MC_ARG(uint8_t, u8Src, 2); \ 148 148 IEM_MC_FETCH_GREG_U8(u8Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 210 210 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 211 211 IEM_MC_ARG(uint8_t const *, pu8Dst, 1); \ 212 IEM_MC_MEM_ MAP_U8_RO(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \212 IEM_MC_MEM_SEG_MAP_U8_RO(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 213 213 IEM_MC_ARG(uint8_t, u8Src, 2); \ 214 214 IEM_MC_FETCH_GREG_U8(u8Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 452 452 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 453 453 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 454 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \454 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 455 455 IEM_MC_ARG(uint16_t, u16Src, 2); \ 456 456 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 472 472 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 473 473 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 474 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \474 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 475 475 IEM_MC_ARG(uint32_t, u32Src, 2); \ 476 476 IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 492 492 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 493 493 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 494 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \494 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 495 495 IEM_MC_ARG(uint64_t, u64Src, 2); \ 496 496 IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 522 522 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 523 523 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 524 IEM_MC_MEM_ MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \524 IEM_MC_MEM_SEG_MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 525 525 IEM_MC_ARG(uint16_t, u16Src, 2); \ 526 526 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 542 542 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 543 543 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 544 IEM_MC_MEM_ MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \544 IEM_MC_MEM_SEG_MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 545 545 IEM_MC_ARG(uint32_t, u32Src, 2); \ 546 546 IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 562 562 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 563 563 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 564 IEM_MC_MEM_ MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \564 IEM_MC_MEM_SEG_MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 565 565 IEM_MC_ARG(uint64_t, u64Src, 2); \ 566 566 IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 686 686 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 687 687 IEM_MC_ARG(uint16_t const *, pu16Dst, 1); \ 688 IEM_MC_MEM_ MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \688 IEM_MC_MEM_SEG_MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 689 689 IEM_MC_ARG(uint16_t, u16Src, 2); \ 690 690 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 714 714 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 715 715 IEM_MC_ARG(uint32_t const *, pu32Dst, 1); \ 716 IEM_MC_MEM_ MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \716 IEM_MC_MEM_SEG_MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 717 717 IEM_MC_ARG(uint32_t, u32Src, 2); \ 718 718 IEM_MC_FETCH_GREG_U32(u32Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 742 742 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 743 743 IEM_MC_ARG(uint64_t const *, pu64Dst, 1); \ 744 IEM_MC_MEM_ MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \744 IEM_MC_MEM_SEG_MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 745 745 IEM_MC_ARG(uint64_t, u64Src, 2); \ 746 746 IEM_MC_FETCH_GREG_U64(u64Src, IEM_GET_MODRM_REG(pVCpu, a_bRm)); \ … … 3171 3171 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 3172 3172 IEM_MC_ARG(uint16_t *, pu16Dst, 1); 3173 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);3173 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 3174 3174 IEM_MC_ARG(uint16_t, u16Src, 2); 3175 3175 IEM_MC_FETCH_GREG_U16(u16Src, IEM_GET_MODRM_REG_8(bRm)); … … 4436 4436 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4437 4437 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 4438 IEM_MC_MEM_ MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4438 IEM_MC_MEM_SEG_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4439 4439 IEM_MC_ARG_CONST(uint8_t, u8Src, /*=*/ u8Imm, 2); \ 4440 4440 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 4456 4456 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4457 4457 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 4458 IEM_MC_MEM_ MAP_U8_ATOMIC(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4458 IEM_MC_MEM_SEG_MAP_U8_ATOMIC(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4459 4459 IEM_MC_ARG_CONST(uint8_t, u8Src, /*=*/ u8Imm, 2); \ 4460 4460 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 4512 4512 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4513 4513 IEM_MC_ARG(uint8_t const *, pu8Dst, 1); \ 4514 IEM_MC_MEM_ MAP_U8_RO(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4514 IEM_MC_MEM_SEG_MAP_U8_RO(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4515 4515 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 4516 4516 IEM_MC_ARG_CONST(uint8_t, u8Src, /*=*/ u8Imm, 2); \ … … 4758 4758 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4759 4759 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 4760 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4760 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4761 4761 \ 4762 4762 IEM_MC_ARG_CONST(uint16_t, u16Src, u16Imm, 2); \ … … 4782 4782 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4783 4783 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 4784 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4784 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4785 4785 \ 4786 4786 IEM_MC_ARG_CONST(uint32_t, u32Src, u32Imm, 2); \ … … 4807 4807 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4808 4808 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 4809 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4809 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4810 4810 \ 4811 4811 IEM_MC_ARG_CONST(uint64_t, u64Src, u64Imm, 2); \ … … 4838 4838 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4839 4839 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 4840 IEM_MC_MEM_ MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4840 IEM_MC_MEM_SEG_MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4841 4841 \ 4842 4842 IEM_MC_ARG_CONST(uint16_t, u16Src, u16Imm, 2); \ … … 4862 4862 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4863 4863 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 4864 IEM_MC_MEM_ MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4864 IEM_MC_MEM_SEG_MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4865 4865 \ 4866 4866 IEM_MC_ARG_CONST(uint32_t, u32Src, u32Imm, 2); \ … … 4886 4886 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 4887 4887 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 4888 IEM_MC_MEM_ MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \4888 IEM_MC_MEM_SEG_MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 4889 4889 \ 4890 4890 IEM_MC_ARG_CONST(uint64_t, u64Src, u64Imm, 2); \ … … 5013 5013 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5014 5014 IEM_MC_ARG(uint16_t const *, pu16Dst, 1); \ 5015 IEM_MC_MEM_ MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5015 IEM_MC_MEM_SEG_MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5016 5016 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 5017 5017 IEM_MC_ARG_CONST(uint16_t, u16Src, u16Imm, 2); \ … … 5041 5041 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5042 5042 IEM_MC_ARG(uint32_t const *, pu32Dst, 1); \ 5043 IEM_MC_MEM_ MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5043 IEM_MC_MEM_SEG_MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5044 5044 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 5045 5045 IEM_MC_ARG_CONST(uint32_t, u32Src, u32Imm, 2); \ … … 5069 5069 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5070 5070 IEM_MC_ARG(uint64_t const *, pu64Dst, 1); \ 5071 IEM_MC_MEM_ MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5071 IEM_MC_MEM_SEG_MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5072 5072 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 5073 5073 IEM_MC_ARG_CONST(uint64_t, u64Src, u64Imm, 2); \ … … 5327 5327 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5328 5328 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 5329 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5329 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5330 5330 \ 5331 5331 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 5349 5349 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5350 5350 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 5351 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5351 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5352 5352 \ 5353 5353 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 5371 5371 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5372 5372 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 5373 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5373 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5374 5374 \ 5375 5375 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 5400 5400 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5401 5401 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 5402 IEM_MC_MEM_ MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5402 IEM_MC_MEM_SEG_MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5403 5403 \ 5404 5404 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 5422 5422 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5423 5423 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 5424 IEM_MC_MEM_ MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5424 IEM_MC_MEM_SEG_MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5425 5425 \ 5426 5426 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 5444 5444 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5445 5445 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 5446 IEM_MC_MEM_ MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5446 IEM_MC_MEM_SEG_MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5447 5447 \ 5448 5448 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 5562 5562 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5563 5563 IEM_MC_ARG(uint16_t const *, pu16Dst, 1); \ 5564 IEM_MC_MEM_ MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5564 IEM_MC_MEM_SEG_MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5565 5565 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 5566 5566 IEM_MC_ARG_CONST(uint16_t, u16Src, (uint16_t)(int16_t)(int8_t)u8Imm, 2); \ … … 5588 5588 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5589 5589 IEM_MC_ARG(uint32_t const *, pu32Dst, 1); \ 5590 IEM_MC_MEM_ MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5590 IEM_MC_MEM_SEG_MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5591 5591 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 5592 5592 IEM_MC_ARG_CONST(uint32_t, u32Src, (uint32_t)(int32_t)(int8_t)u8Imm, 2); \ … … 5614 5614 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 5615 5615 IEM_MC_ARG(uint64_t const *, pu64Dst, 1); \ 5616 IEM_MC_MEM_ MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5616 IEM_MC_MEM_SEG_MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5617 5617 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ 5618 5618 IEM_MC_ARG_CONST(uint64_t, u64Src, (uint64_t)(int64_t)(int8_t)u8Imm, 2); \ … … 5926 5926 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 5927 5927 IEMOP_HLP_DONE_DECODING(); /** @todo testcase: lock xchg */ \ 5928 IEM_MC_MEM_ MAP_U8_##a_Style(pu8Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \5928 IEM_MC_MEM_SEG_MAP_U8_##a_Style(pu8Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 5929 5929 IEM_MC_FETCH_GREG_U8(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 5930 5930 IEM_MC_CALL_VOID_AIMPL_2(a_fnWorker, pu8Mem, pu8Reg); \ … … 6029 6029 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 6030 6030 IEMOP_HLP_DONE_DECODING(); /** @todo testcase: lock xchg */ \ 6031 IEM_MC_MEM_ MAP_U16_##a_Type(pu16Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \6031 IEM_MC_MEM_SEG_MAP_U16_##a_Type(pu16Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 6032 6032 IEM_MC_FETCH_GREG_U16(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 6033 6033 IEM_MC_CALL_VOID_AIMPL_2(a_fnWorker16, pu16Mem, pu16Reg); \ … … 6049 6049 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 6050 6050 IEMOP_HLP_DONE_DECODING(); \ 6051 IEM_MC_MEM_ MAP_U32_##a_Type(pu32Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \6051 IEM_MC_MEM_SEG_MAP_U32_##a_Type(pu32Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 6052 6052 IEM_MC_FETCH_GREG_U32(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 6053 6053 IEM_MC_CALL_VOID_AIMPL_2(a_fnWorker32, pu32Mem, pu32Reg); \ … … 6069 6069 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 6070 6070 IEMOP_HLP_DONE_DECODING(); \ 6071 IEM_MC_MEM_ MAP_U64_##a_Type(pu64Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \6071 IEM_MC_MEM_SEG_MAP_U64_##a_Type(pu64Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 6072 6072 IEM_MC_FETCH_GREG_U64(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \ 6073 6073 IEM_MC_CALL_VOID_AIMPL_2(a_fnWorker64, pu64Mem, pu64Reg); \ … … 8836 8836 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 8837 8837 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 8838 IEM_MC_MEM_ MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \8838 IEM_MC_MEM_SEG_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 8839 8839 \ 8840 8840 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9018 9018 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9019 9019 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 9020 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9020 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9021 9021 \ 9022 9022 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9040 9040 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9041 9041 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 9042 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9042 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9043 9043 \ 9044 9044 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9062 9062 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9063 9063 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 9064 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9064 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9065 9065 \ 9066 9066 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9693 9693 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9694 9694 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 9695 IEM_MC_MEM_ MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9695 IEM_MC_MEM_SEG_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9696 9696 \ 9697 9697 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9864 9864 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 9865 9865 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9866 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9866 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9867 9867 \ 9868 9868 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9884 9884 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9885 9885 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 9886 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9886 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9887 9887 \ 9888 9888 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9904 9904 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9905 9905 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 9906 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9906 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9907 9907 \ 9908 9908 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10062 10062 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10063 10063 IEM_MC_ARG(uint8_t *, pu8Dst, 1); \ 10064 IEM_MC_MEM_ MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10064 IEM_MC_MEM_SEG_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10065 10065 \ 10066 10066 IEM_MC_ARG(uint8_t, cShiftArg, 2); \ … … 10271 10271 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10272 10272 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 10273 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10273 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10274 10274 \ 10275 10275 IEM_MC_ARG(uint8_t, cShiftArg, 2); \ … … 10292 10292 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10293 10293 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 10294 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10294 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10295 10295 \ 10296 10296 IEM_MC_ARG(uint8_t, cShiftArg, 2); \ … … 10313 10313 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10314 10314 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 10315 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10315 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10316 10316 \ 10317 10317 IEM_MC_ARG(uint8_t, cShiftArg, 2); \ … … 10939 10939 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 10940 10940 IEM_MC_ARG(PRTFLOAT32U, pr32Dst, 1); 10941 IEM_MC_MEM_ MAP_R32_WO(pr32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);10941 IEM_MC_MEM_SEG_MAP_R32_WO(pr32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 10942 10942 10943 10943 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 10978 10978 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 10979 10979 IEM_MC_ARG(PRTFLOAT32U, pr32Dst, 1); 10980 IEM_MC_MEM_ MAP_R32_WO(pr32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);10980 IEM_MC_MEM_SEG_MAP_R32_WO(pr32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 10981 10981 10982 10982 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12067 12067 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12068 12068 IEM_MC_ARG(int32_t *, pi32Dst, 1); 12069 IEM_MC_MEM_ MAP_I32_WO(pi32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12069 IEM_MC_MEM_SEG_MAP_I32_WO(pi32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12070 12070 12071 12071 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12106 12106 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12107 12107 IEM_MC_ARG(int32_t *, pi32Dst, 1); 12108 IEM_MC_MEM_ MAP_I32_WO(pi32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12108 IEM_MC_MEM_SEG_MAP_I32_WO(pi32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12109 12109 12110 12110 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12145 12145 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12146 12146 IEM_MC_ARG(int32_t *, pi32Dst, 1); 12147 IEM_MC_MEM_ MAP_I32_WO(pi32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12147 IEM_MC_MEM_SEG_MAP_I32_WO(pi32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12148 12148 12149 12149 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12216 12216 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12217 12217 IEM_MC_ARG(PRTFLOAT80U, pr80Dst, 1); 12218 IEM_MC_MEM_ MAP_R80_WO(pr80Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12218 IEM_MC_MEM_SEG_MAP_R80_WO(pr80Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12219 12219 12220 12220 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12811 12811 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12812 12812 IEM_MC_ARG(int64_t *, pi64Dst, 1); 12813 IEM_MC_MEM_ MAP_I64_WO(pi64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12813 IEM_MC_MEM_SEG_MAP_I64_WO(pi64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12814 12814 12815 12815 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12850 12850 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12851 12851 IEM_MC_ARG(PRTFLOAT64U, pr64Dst, 1); 12852 IEM_MC_MEM_ MAP_R64_WO(pr64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12852 IEM_MC_MEM_SEG_MAP_R64_WO(pr64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12853 12853 12854 12854 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 12891 12891 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 12892 12892 IEM_MC_ARG(PRTFLOAT64U, pr64Dst, 1); 12893 IEM_MC_MEM_ MAP_R64_WO(pr64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);12893 IEM_MC_MEM_SEG_MAP_R64_WO(pr64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 12894 12894 12895 12895 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 13433 13433 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 13434 13434 IEM_MC_ARG(int16_t *, pi16Dst, 1); 13435 IEM_MC_MEM_ MAP_I16_WO(pi16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);13435 IEM_MC_MEM_SEG_MAP_I16_WO(pi16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 13436 13436 13437 13437 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 13472 13472 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 13473 13473 IEM_MC_ARG(int16_t *, pi16Dst, 1); 13474 IEM_MC_MEM_ MAP_I16_WO(pi16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);13474 IEM_MC_MEM_SEG_MAP_I16_WO(pi16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 13475 13475 13476 13476 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 13511 13511 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 13512 13512 IEM_MC_ARG(int16_t *, pi16Dst, 1); 13513 IEM_MC_MEM_ MAP_I16_WO(pi16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);13513 IEM_MC_MEM_SEG_MAP_I16_WO(pi16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 13514 13514 13515 13515 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 13614 13614 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 13615 13615 IEM_MC_ARG(PRTPBCD80U, pd80Dst, 1); 13616 IEM_MC_MEM_ MAP_D80_WO(pd80Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);13616 IEM_MC_MEM_SEG_MAP_D80_WO(pd80Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 13617 13617 13618 13618 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 13653 13653 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 13654 13654 IEM_MC_ARG(int64_t *, pi64Dst, 1); 13655 IEM_MC_MEM_ MAP_I64_WO(pi64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);13655 IEM_MC_MEM_SEG_MAP_I64_WO(pi64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 13656 13656 13657 13657 IEM_MC_ARG(PCRTFLOAT80U, pr80Value, 2); … … 14326 14326 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, a_bRm, 0); \ 14327 14327 IEMOP_HLP_DONE_DECODING(); \ 14328 IEM_MC_MEM_ MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14328 IEM_MC_MEM_SEG_MAP_U8_RW(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14329 14329 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14330 14330 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU8, pu8Dst, pEFlags); \ … … 14344 14344 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, a_bRm, 0); \ 14345 14345 IEMOP_HLP_DONE_DECODING(); \ 14346 IEM_MC_MEM_ MAP_U8_ATOMIC(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14346 IEM_MC_MEM_SEG_MAP_U8_ATOMIC(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14347 14347 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14348 14348 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU8, pu8Dst, pEFlags); \ … … 14425 14425 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 14426 14426 IEMOP_HLP_DONE_DECODING(); \ 14427 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14427 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14428 14428 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14429 14429 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU16, pu16Dst, pEFlags); \ … … 14443 14443 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 14444 14444 IEMOP_HLP_DONE_DECODING(); \ 14445 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14445 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14446 14446 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14447 14447 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU32, pu32Dst, pEFlags); \ … … 14461 14461 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 14462 14462 IEMOP_HLP_DONE_DECODING(); \ 14463 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14463 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14464 14464 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14465 14465 IEM_MC_CALL_VOID_AIMPL_2(a_fnNormalU64, pu64Dst, pEFlags); \ … … 14489 14489 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 14490 14490 IEMOP_HLP_DONE_DECODING(); \ 14491 IEM_MC_MEM_ MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14491 IEM_MC_MEM_SEG_MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14492 14492 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14493 14493 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU16, pu16Dst, pEFlags); \ … … 14507 14507 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 14508 14508 IEMOP_HLP_DONE_DECODING(); \ 14509 IEM_MC_MEM_ MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14509 IEM_MC_MEM_SEG_MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14510 14510 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14511 14511 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU32, pu32Dst, pEFlags); \ … … 14525 14525 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \ 14526 14526 IEMOP_HLP_DONE_DECODING(); \ 14527 IEM_MC_MEM_ MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \14527 IEM_MC_MEM_SEG_MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 14528 14528 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 1); \ 14529 14529 IEM_MC_CALL_VOID_AIMPL_2(a_fnLockedU64, pu64Dst, pEFlags); \ -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllInstTwoByte0f-x86.cpp.h
r108267 r108287 8979 8979 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 8980 8980 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 8981 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \8981 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 8982 8982 \ 8983 8983 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9006 9006 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9007 9007 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 9008 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9008 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9009 9009 \ 9010 9010 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9033 9033 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9034 9034 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 9035 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9035 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9036 9036 \ 9037 9037 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9070 9070 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9071 9071 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 9072 IEM_MC_MEM_ MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9072 IEM_MC_MEM_SEG_MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9073 9073 \ 9074 9074 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9097 9097 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9098 9098 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 9099 IEM_MC_MEM_ MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9099 IEM_MC_MEM_SEG_MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9100 9100 \ 9101 9101 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9124 9124 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9125 9125 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 9126 IEM_MC_MEM_ MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9126 IEM_MC_MEM_SEG_MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9127 9127 \ 9128 9128 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9229 9229 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9230 9230 IEM_MC_ARG(uint16_t const *, pu16Dst, 1); \ 9231 IEM_MC_MEM_ MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9231 IEM_MC_MEM_SEG_MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9232 9232 \ 9233 9233 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9256 9256 IEM_MC_ARG(uint32_t const *, pu32Dst, 1); \ 9257 9257 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9258 IEM_MC_MEM_ MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9258 IEM_MC_MEM_SEG_MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9259 9259 \ 9260 9260 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9283 9283 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9284 9284 IEM_MC_ARG(uint64_t const *, pu64Dst, 1); \ 9285 IEM_MC_MEM_ MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9285 IEM_MC_MEM_SEG_MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9286 9286 \ 9287 9287 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 9403 9403 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9404 9404 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \ 9405 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9405 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9406 9406 \ 9407 9407 IEM_MC_ARG(uint16_t, u16Src, 1); \ … … 9427 9427 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9428 9428 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \ 9429 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9429 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9430 9430 \ 9431 9431 IEM_MC_ARG(uint32_t, u32Src, 1); \ … … 9451 9451 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 9452 9452 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \ 9453 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9453 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9454 9454 \ 9455 9455 IEM_MC_ARG(uint64_t, u64Src, 1); \ … … 9559 9559 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); \ 9560 9560 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); \ 9561 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9561 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9562 9562 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU16, pu16Dst, u16Src, cShiftArg, pEFlags); \ 9563 9563 \ … … 9581 9581 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); \ 9582 9582 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); \ 9583 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9583 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9584 9584 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU32, pu32Dst, u32Src, cShiftArg, pEFlags); \ 9585 9585 \ … … 9603 9603 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); \ 9604 9604 IEM_MC_ARG_LOCAL_EFLAGS( pEFlags, EFlags, 3); \ 9605 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \9605 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 9606 9606 IEM_MC_CALL_VOID_AIMPL_4(pImpl->pfnNormalU64, pu64Dst, u64Src, cShiftArg, pEFlags); \ 9607 9607 \ … … 10211 10211 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10212 10212 IEM_MC_ARG(uint8_t *, pu8Dst, 0); \ 10213 IEM_MC_MEM_ MAP_U8_##a_Type(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10213 IEM_MC_MEM_SEG_MAP_U8_##a_Type(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10214 10214 \ 10215 10215 IEM_MC_ARG(uint8_t, u8Src, 2); \ … … 10332 10332 \ 10333 10333 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \ 10334 IEM_MC_MEM_ MAP_U16_##a_Type(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10334 IEM_MC_MEM_SEG_MAP_U16_##a_Type(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10335 10335 \ 10336 10336 IEM_MC_ARG(uint16_t, u16Src, 2); \ … … 10359 10359 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10360 10360 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \ 10361 IEM_MC_MEM_ MAP_U32_##a_Type(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10361 IEM_MC_MEM_SEG_MAP_U32_##a_Type(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10362 10362 \ 10363 10363 IEM_MC_ARG(uint32_t, u32Src, 2); \ … … 10390 10390 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10391 10391 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \ 10392 IEM_MC_MEM_ MAP_U64_##a_Type(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10392 IEM_MC_MEM_SEG_MAP_U64_##a_Type(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10393 10393 \ 10394 10394 IEM_MC_ARG(uint64_t, u64Src, 2); \ … … 10770 10770 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10771 10771 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 10772 IEM_MC_MEM_ MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10772 IEM_MC_MEM_SEG_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10773 10773 \ 10774 10774 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10792 10792 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10793 10793 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 10794 IEM_MC_MEM_ MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10794 IEM_MC_MEM_SEG_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10795 10795 \ 10796 10796 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10814 10814 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10815 10815 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 10816 IEM_MC_MEM_ MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10816 IEM_MC_MEM_SEG_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10817 10817 \ 10818 10818 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10846 10846 IEM_MC_ARG(uint16_t *, pu16Dst, 1); \ 10847 10847 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10848 IEM_MC_MEM_ MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10848 IEM_MC_MEM_SEG_MAP_U16_ATOMIC(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10849 10849 \ 10850 10850 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10868 10868 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10869 10869 IEM_MC_ARG(uint32_t *, pu32Dst, 1); \ 10870 IEM_MC_MEM_ MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10870 IEM_MC_MEM_SEG_MAP_U32_ATOMIC(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10871 10871 \ 10872 10872 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10890 10890 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10891 10891 IEM_MC_ARG(uint64_t *, pu64Dst, 1); \ 10892 IEM_MC_MEM_ MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10892 IEM_MC_MEM_SEG_MAP_U64_ATOMIC(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10893 10893 \ 10894 10894 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 10982 10982 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 10983 10983 IEM_MC_ARG(uint16_t const *, pu16Dst, 1); \ 10984 IEM_MC_MEM_ MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \10984 IEM_MC_MEM_SEG_MAP_U16_RO(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 10985 10985 \ 10986 10986 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 11004 11004 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 11005 11005 IEM_MC_ARG(uint32_t const *, pu32Dst, 1); \ 11006 IEM_MC_MEM_ MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \11006 IEM_MC_MEM_SEG_MAP_U32_RO(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 11007 11007 \ 11008 11008 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 11026 11026 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 11027 11027 IEM_MC_ARG(uint64_t const *, pu64Dst, 1); \ 11028 IEM_MC_MEM_ MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \11028 IEM_MC_MEM_SEG_MAP_U64_RO(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 11029 11029 \ 11030 11030 IEM_MC_ARG_EFLAGS( fEFlagsIn, 0); \ … … 11601 11601 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 11602 11602 IEM_MC_ARG(uint8_t *, pu8Dst, 0); \ 11603 IEM_MC_MEM_ MAP_U8_##a_Type(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \11603 IEM_MC_MEM_SEG_MAP_U8_##a_Type(pu8Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 11604 11604 \ 11605 11605 IEM_MC_LOCAL(uint8_t, u8RegCopy); \ … … 11714 11714 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 11715 11715 IEM_MC_ARG(uint16_t *, pu16Dst, 0); \ 11716 IEM_MC_MEM_ MAP_U16_##a_Type(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \11716 IEM_MC_MEM_SEG_MAP_U16_##a_Type(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 11717 11717 \ 11718 11718 IEM_MC_LOCAL(uint16_t, u16RegCopy); \ … … 11738 11738 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 11739 11739 IEM_MC_ARG(uint32_t *, pu32Dst, 0); \ 11740 IEM_MC_MEM_ MAP_U32_##a_Type(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \11740 IEM_MC_MEM_SEG_MAP_U32_##a_Type(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 11741 11741 \ 11742 11742 IEM_MC_LOCAL(uint32_t, u32RegCopy); \ … … 11762 11762 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 11763 11763 IEM_MC_ARG(uint64_t *, pu64Dst, 0); \ 11764 IEM_MC_MEM_ MAP_U64_##a_Type(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \11764 IEM_MC_MEM_SEG_MAP_U64_##a_Type(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 11765 11765 \ 11766 11766 IEM_MC_LOCAL(uint64_t, u64RegCopy); \ … … 12366 12366 IEM_MC_LOCAL(uint8_t, bUnmapInfo); \ 12367 12367 IEM_MC_ARG(uint64_t *, pu64MemDst, 0); \ 12368 IEM_MC_MEM_ MAP_U64_##a_Type(pu64MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \12368 IEM_MC_MEM_SEG_MAP_U64_##a_Type(pu64MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12369 12369 \ 12370 12370 IEM_MC_LOCAL(RTUINT64U, u64EaxEdx); \ … … 12424 12424 bUnmapInfoStmt; \ 12425 12425 IEM_MC_ARG(PRTUINT128U, pu128MemDst, 0); \ 12426 IEM_MC_MEM_ MAP_U128_##a_Type(pu128MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \12426 IEM_MC_MEM_SEG_MAP_U128_##a_Type(pu128MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \ 12427 12427 \ 12428 12428 IEM_MC_LOCAL(RTUINT128U, u128RaxRdx); \ -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veLiveness-x86.h
r108269 r108287 227 227 228 228 229 #define IEM_LIVENESS_MEM (a_iSeg) do { \229 #define IEM_LIVENESS_MEM_SEG(a_iSeg) do { \ 230 230 IEM_LIVENESS_MARK_POTENTIAL_CALL(); \ 231 231 IEM_LIVENESS_SEG_ATTRIB_INPUT(a_iSeg); \ … … 237 237 238 238 #define IEM_LIVENESS_STACK() do { \ 239 IEM_LIVENESS_MEM (X86_SREG_SS); \239 IEM_LIVENESS_MEM_SEG(X86_SREG_SS); \ 240 240 IEM_LIVENESS_GPR_MODIFY(X86_GREG_xSP); \ 241 241 } while (0) … … 824 824 #define IEM_MC_CLEAR_ZREG_256_UP(a_iYReg) NOP() 825 825 826 #define IEM_MC_FETCH_MEM_U8(a_u8Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)827 #define IEM_MC_FETCH_MEM16_U8(a_u8Dst, a_iSeg, a_GCPtrMem16) IEM_LIVENESS_MEM (a_iSeg)828 #define IEM_MC_FETCH_MEM32_U8(a_u8Dst, a_iSeg, a_GCPtrMem32) IEM_LIVENESS_MEM (a_iSeg)826 #define IEM_MC_FETCH_MEM_U8(a_u8Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 827 #define IEM_MC_FETCH_MEM16_U8(a_u8Dst, a_iSeg, a_GCPtrMem16) IEM_LIVENESS_MEM_SEG(a_iSeg) 828 #define IEM_MC_FETCH_MEM32_U8(a_u8Dst, a_iSeg, a_GCPtrMem32) IEM_LIVENESS_MEM_SEG(a_iSeg) 829 829 830 830 #define IEM_MC_FETCH_MEM_FLAT_U8(a_u8Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 832 832 #define IEM_MC_FETCH_MEM32_FLAT_U8(a_u8Dst, a_GCPtrMem32) IEM_LIVENESS_MEM_FLAT() 833 833 834 #define IEM_MC_FETCH_MEM_U16(a_u16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)835 #define IEM_MC_FETCH_MEM_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM (a_iSeg)836 #define IEM_MC_FETCH_MEM_I16(a_i16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)837 #define IEM_MC_FETCH_MEM_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM (a_iSeg)834 #define IEM_MC_FETCH_MEM_U16(a_u16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 835 #define IEM_MC_FETCH_MEM_U16_DISP(a_u16Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_SEG(a_iSeg) 836 #define IEM_MC_FETCH_MEM_I16(a_i16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 837 #define IEM_MC_FETCH_MEM_I16_DISP(a_i16Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_SEG(a_iSeg) 838 838 839 839 #define IEM_MC_FETCH_MEM_FLAT_U16(a_u16Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 842 842 #define IEM_MC_FETCH_MEM_FLAT_I16_DISP(a_i16Dst, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_FLAT() 843 843 844 #define IEM_MC_FETCH_MEM_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)845 #define IEM_MC_FETCH_MEM_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM (a_iSeg)846 #define IEM_MC_FETCH_MEM_I32(a_i32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)847 #define IEM_MC_FETCH_MEM_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM (a_iSeg)844 #define IEM_MC_FETCH_MEM_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 845 #define IEM_MC_FETCH_MEM_U32_DISP(a_u32Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_SEG(a_iSeg) 846 #define IEM_MC_FETCH_MEM_I32(a_i32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 847 #define IEM_MC_FETCH_MEM_I32_DISP(a_i32Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_SEG(a_iSeg) 848 848 849 849 #define IEM_MC_FETCH_MEM_FLAT_U32(a_u32Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 852 852 #define IEM_MC_FETCH_MEM_FLAT_I32_DISP(a_i32Dst, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_FLAT() 853 853 854 #define IEM_MC_FETCH_MEM_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)855 #define IEM_MC_FETCH_MEM_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM (a_iSeg)856 #define IEM_MC_FETCH_MEM_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)857 #define IEM_MC_FETCH_MEM_I64(a_i64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)854 #define IEM_MC_FETCH_MEM_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 855 #define IEM_MC_FETCH_MEM_U64_DISP(a_u64Dst, a_iSeg, a_GCPtrMem, a_offDisp) IEM_LIVENESS_MEM_SEG(a_iSeg) 856 #define IEM_MC_FETCH_MEM_U64_ALIGN_U128(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 857 #define IEM_MC_FETCH_MEM_I64(a_i64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 858 858 859 859 #define IEM_MC_FETCH_MEM_FLAT_U64(a_u64Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 862 862 #define IEM_MC_FETCH_MEM_FLAT_I64(a_i64Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 863 863 864 #define IEM_MC_FETCH_MEM_R32(a_r32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)865 #define IEM_MC_FETCH_MEM_R64(a_r64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)866 #define IEM_MC_FETCH_MEM_R80(a_r80Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)867 #define IEM_MC_FETCH_MEM_D80(a_d80Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)864 #define IEM_MC_FETCH_MEM_R32(a_r32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 865 #define IEM_MC_FETCH_MEM_R64(a_r64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 866 #define IEM_MC_FETCH_MEM_R80(a_r80Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 867 #define IEM_MC_FETCH_MEM_D80(a_d80Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 868 868 869 869 #define IEM_MC_FETCH_MEM_FLAT_R32(a_r32Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 872 872 #define IEM_MC_FETCH_MEM_FLAT_D80(a_d80Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 873 873 874 #define IEM_MC_FETCH_MEM_U128(a_u128Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)875 #define IEM_MC_FETCH_MEM_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)876 #define IEM_MC_FETCH_MEM_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)877 878 #define IEM_MC_FETCH_MEM_XMM(a_XmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)879 #define IEM_MC_FETCH_MEM_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)880 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)874 #define IEM_MC_FETCH_MEM_U128(a_u128Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 875 #define IEM_MC_FETCH_MEM_U128_NO_AC(a_u128Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 876 #define IEM_MC_FETCH_MEM_U128_ALIGN_SSE(a_u128Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 877 878 #define IEM_MC_FETCH_MEM_XMM(a_XmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 879 #define IEM_MC_FETCH_MEM_XMM_NO_AC(a_XmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 880 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(a_XmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 881 881 882 882 #define IEM_MC_FETCH_MEM_FLAT_U128(a_u128Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 888 888 #define IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE(a_XmmDst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 889 889 890 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM (a_iSeg)890 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg) 891 891 #define IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128(a_Dst, a_iXReg1, a_GCPtrMem2) IEM_LIVENESS_MEM_FLAT() 892 892 893 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM (a_iSeg)894 #define IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM (a_iSeg)893 #define IEM_MC_FETCH_MEM_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg) 894 #define IEM_MC_FETCH_MEM_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg) 895 895 #define IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE_AND_XREG_XMM(a_Dst, a_iXReg1, a_GCPtrMem2) IEM_LIVENESS_MEM_FLAT() 896 896 #define IEM_MC_FETCH_MEM_FLAT_XMM_NO_AC_AND_XREG_XMM(a_Dst, a_iXReg1, a_GCPtrMem2) IEM_LIVENESS_MEM_FLAT() 897 #define IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM (a_iSeg)897 #define IEM_MC_FETCH_MEM_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg) 898 898 #define IEM_MC_FETCH_MEM_FLAT_XMM_U32_AND_XREG_XMM(a_Dst, a_iXReg1, a_iDWord2, a_GCPtrMem2) IEM_LIVENESS_MEM_FLAT() 899 #define IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM (a_iSeg)899 #define IEM_MC_FETCH_MEM_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_iSeg2, a_GCPtrMem2) IEM_LIVENESS_MEM_SEG(a_iSeg) 900 900 #define IEM_MC_FETCH_MEM_FLAT_XMM_U64_AND_XREG_XMM(a_Dst, a_iXReg1, a_iQWord2, a_GCPtrMem2) IEM_LIVENESS_MEM_FLAT() 901 901 902 902 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \ 903 do { IEM_LIVENESS_MEM (a_iSeg2); IEM_LIVENESS_GPR_INPUT(X86_GREG_xAX); IEM_LIVENESS_GPR_INPUT(X86_GREG_xDX); } while (0)903 do { IEM_LIVENESS_MEM_SEG(a_iSeg2); IEM_LIVENESS_GPR_INPUT(X86_GREG_xAX); IEM_LIVENESS_GPR_INPUT(X86_GREG_xDX); } while (0) 904 904 #define IEM_MC_FETCH_MEM_U128_AND_XREG_U128_AND_EAX_EDX_U32_SX_U64(a_Dst, a_iXReg1, a_iSeg2, a_GCPtrMem2) \ 905 do { IEM_LIVENESS_MEM (a_iSeg2); IEM_LIVENESS_GPR_INPUT(X86_GREG_xAX); IEM_LIVENESS_GPR_INPUT(X86_GREG_xDX); } while (0)905 do { IEM_LIVENESS_MEM_SEG(a_iSeg2); IEM_LIVENESS_GPR_INPUT(X86_GREG_xAX); IEM_LIVENESS_GPR_INPUT(X86_GREG_xDX); } while (0) 906 906 907 907 #define IEM_MC_FETCH_MEM_FLAT_U128_AND_XREG_U128_AND_RAX_RDX_U64(a_Dst, a_iXReg1, a_GCPtrMem2) \ … … 911 911 912 912 913 #define IEM_MC_FETCH_MEM_U256(a_u256Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)914 #define IEM_MC_FETCH_MEM_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)915 #define IEM_MC_FETCH_MEM_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)916 917 #define IEM_MC_FETCH_MEM_YMM(a_YmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)918 #define IEM_MC_FETCH_MEM_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)919 #define IEM_MC_FETCH_MEM_YMM_ALIGN_AVX(a_YmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)913 #define IEM_MC_FETCH_MEM_U256(a_u256Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 914 #define IEM_MC_FETCH_MEM_U256_NO_AC(a_u256Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 915 #define IEM_MC_FETCH_MEM_U256_ALIGN_AVX(a_u256Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 916 917 #define IEM_MC_FETCH_MEM_YMM(a_YmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 918 #define IEM_MC_FETCH_MEM_YMM_NO_AC(a_YmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 919 #define IEM_MC_FETCH_MEM_YMM_ALIGN_AVX(a_YmmDst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 920 920 921 921 #define IEM_MC_FETCH_MEM_FLAT_U256(a_u256Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 927 927 #define IEM_MC_FETCH_MEM_FLAT_YMM_ALIGN_AVX(a_YmmDst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 928 928 929 #define IEM_MC_FETCH_MEM_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)930 #define IEM_MC_FETCH_MEM_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)931 #define IEM_MC_FETCH_MEM_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)932 #define IEM_MC_FETCH_MEM_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)933 #define IEM_MC_FETCH_MEM_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)934 #define IEM_MC_FETCH_MEM_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)929 #define IEM_MC_FETCH_MEM_U8_ZX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 930 #define IEM_MC_FETCH_MEM_U8_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 931 #define IEM_MC_FETCH_MEM_U8_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 932 #define IEM_MC_FETCH_MEM_U16_ZX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 933 #define IEM_MC_FETCH_MEM_U16_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 934 #define IEM_MC_FETCH_MEM_U32_ZX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 935 935 936 936 #define IEM_MC_FETCH_MEM_FLAT_U8_ZX_U16(a_u16Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 941 941 #define IEM_MC_FETCH_MEM_FLAT_U32_ZX_U64(a_u64Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 942 942 943 #define IEM_MC_FETCH_MEM_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)944 #define IEM_MC_FETCH_MEM_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)945 #define IEM_MC_FETCH_MEM_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)946 #define IEM_MC_FETCH_MEM_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)947 #define IEM_MC_FETCH_MEM_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)948 #define IEM_MC_FETCH_MEM_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM (a_iSeg)943 #define IEM_MC_FETCH_MEM_U8_SX_U16(a_u16Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 944 #define IEM_MC_FETCH_MEM_U8_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 945 #define IEM_MC_FETCH_MEM_U8_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 946 #define IEM_MC_FETCH_MEM_U16_SX_U32(a_u32Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 947 #define IEM_MC_FETCH_MEM_U16_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 948 #define IEM_MC_FETCH_MEM_U32_SX_U64(a_u64Dst, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 949 949 950 950 #define IEM_MC_FETCH_MEM_FLAT_U8_SX_U16(a_u16Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() … … 955 955 #define IEM_MC_FETCH_MEM_FLAT_U32_SX_U64(a_u64Dst, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 956 956 957 #define IEM_MC_STORE_MEM_U8(a_iSeg, a_GCPtrMem, a_u8Value) IEM_LIVENESS_MEM (a_iSeg)958 #define IEM_MC_STORE_MEM_U16(a_iSeg, a_GCPtrMem, a_u16Value) IEM_LIVENESS_MEM (a_iSeg)959 #define IEM_MC_STORE_MEM_U32(a_iSeg, a_GCPtrMem, a_u32Value) IEM_LIVENESS_MEM (a_iSeg)960 #define IEM_MC_STORE_MEM_U64(a_iSeg, a_GCPtrMem, a_u64Value) IEM_LIVENESS_MEM (a_iSeg)957 #define IEM_MC_STORE_MEM_U8(a_iSeg, a_GCPtrMem, a_u8Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 958 #define IEM_MC_STORE_MEM_U16(a_iSeg, a_GCPtrMem, a_u16Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 959 #define IEM_MC_STORE_MEM_U32(a_iSeg, a_GCPtrMem, a_u32Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 960 #define IEM_MC_STORE_MEM_U64(a_iSeg, a_GCPtrMem, a_u64Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 961 961 962 962 #define IEM_MC_STORE_MEM_FLAT_U8(a_GCPtrMem, a_u8Value) IEM_LIVENESS_MEM_FLAT() … … 965 965 #define IEM_MC_STORE_MEM_FLAT_U64(a_GCPtrMem, a_u64Value) IEM_LIVENESS_MEM_FLAT() 966 966 967 #define IEM_MC_STORE_MEM_U8_CONST(a_iSeg, a_GCPtrMem, a_u8C) IEM_LIVENESS_MEM (a_iSeg)968 #define IEM_MC_STORE_MEM_U16_CONST(a_iSeg, a_GCPtrMem, a_u16C) IEM_LIVENESS_MEM (a_iSeg)969 #define IEM_MC_STORE_MEM_U32_CONST(a_iSeg, a_GCPtrMem, a_u32C) IEM_LIVENESS_MEM (a_iSeg)970 #define IEM_MC_STORE_MEM_U64_CONST(a_iSeg, a_GCPtrMem, a_u64C) IEM_LIVENESS_MEM (a_iSeg)967 #define IEM_MC_STORE_MEM_U8_CONST(a_iSeg, a_GCPtrMem, a_u8C) IEM_LIVENESS_MEM_SEG(a_iSeg) 968 #define IEM_MC_STORE_MEM_U16_CONST(a_iSeg, a_GCPtrMem, a_u16C) IEM_LIVENESS_MEM_SEG(a_iSeg) 969 #define IEM_MC_STORE_MEM_U32_CONST(a_iSeg, a_GCPtrMem, a_u32C) IEM_LIVENESS_MEM_SEG(a_iSeg) 970 #define IEM_MC_STORE_MEM_U64_CONST(a_iSeg, a_GCPtrMem, a_u64C) IEM_LIVENESS_MEM_SEG(a_iSeg) 971 971 972 972 #define IEM_MC_STORE_MEM_FLAT_U8_CONST(a_GCPtrMem, a_u8C) IEM_LIVENESS_MEM_FLAT() … … 984 984 #define IEM_MC_STORE_MEM_INDEF_D80_BY_REF(a_pd80Dst) NOP() 985 985 986 #define IEM_MC_STORE_MEM_U128(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM (a_iSeg)987 #define IEM_MC_STORE_MEM_U128_ALIGN_SSE(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM (a_iSeg)988 #define IEM_MC_STORE_MEM_U128_NO_AC(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM (a_iSeg)986 #define IEM_MC_STORE_MEM_U128(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 987 #define IEM_MC_STORE_MEM_U128_ALIGN_SSE(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 988 #define IEM_MC_STORE_MEM_U128_NO_AC(a_iSeg, a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 989 989 990 990 #define IEM_MC_STORE_MEM_FLAT_U128(a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM_FLAT() … … 992 992 #define IEM_MC_STORE_MEM_FLAT_U128_NO_AC(a_GCPtrMem, a_u128Value) IEM_LIVENESS_MEM_FLAT() 993 993 994 #define IEM_MC_STORE_MEM_U256(a_iSeg, a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM (a_iSeg)995 #define IEM_MC_STORE_MEM_U256_ALIGN_AVX(a_iSeg, a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM (a_iSeg)996 #define IEM_MC_STORE_MEM_U256_NO_AC(a_iSeg, a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM (a_iSeg)994 #define IEM_MC_STORE_MEM_U256(a_iSeg, a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 995 #define IEM_MC_STORE_MEM_U256_ALIGN_AVX(a_iSeg, a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 996 #define IEM_MC_STORE_MEM_U256_NO_AC(a_iSeg, a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM_SEG(a_iSeg) 997 997 998 998 #define IEM_MC_STORE_MEM_FLAT_U256(a_GCPtrMem, a_u256Value) IEM_LIVENESS_MEM_FLAT() … … 1025 1025 1026 1026 1027 #define IEM_MC_MEM_ MAP_U8_ATOMIC(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1028 #define IEM_MC_MEM_ MAP_U8_RW(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1029 #define IEM_MC_MEM_ MAP_U8_WO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1030 #define IEM_MC_MEM_ MAP_U8_RO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1027 #define IEM_MC_MEM_SEG_MAP_U8_ATOMIC(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1028 #define IEM_MC_MEM_SEG_MAP_U8_RW(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1029 #define IEM_MC_MEM_SEG_MAP_U8_WO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1030 #define IEM_MC_MEM_SEG_MAP_U8_RO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1031 1031 #define IEM_MC_MEM_FLAT_MAP_U8_ATOMIC(a_pu8Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1032 1032 #define IEM_MC_MEM_FLAT_MAP_U8_RW(a_pu8Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1033 1033 #define IEM_MC_MEM_FLAT_MAP_U8_WO(a_pu8Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1034 1034 #define IEM_MC_MEM_FLAT_MAP_U8_RO(a_pu8Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1035 #define IEM_MC_MEM_ MAP_U16_ATOMIC(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1036 #define IEM_MC_MEM_ MAP_U16_RW(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1037 #define IEM_MC_MEM_ MAP_U16_WO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1038 #define IEM_MC_MEM_ MAP_U16_RO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1035 #define IEM_MC_MEM_SEG_MAP_U16_ATOMIC(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1036 #define IEM_MC_MEM_SEG_MAP_U16_RW(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1037 #define IEM_MC_MEM_SEG_MAP_U16_WO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1038 #define IEM_MC_MEM_SEG_MAP_U16_RO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1039 1039 #define IEM_MC_MEM_FLAT_MAP_U16_ATOMIC(a_pu16Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1040 1040 #define IEM_MC_MEM_FLAT_MAP_U16_RW(a_pu16Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1041 1041 #define IEM_MC_MEM_FLAT_MAP_U16_WO(a_pu16Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1042 1042 #define IEM_MC_MEM_FLAT_MAP_U16_RO(a_pu16Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1043 #define IEM_MC_MEM_ MAP_I16_WO(a_pi16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1043 #define IEM_MC_MEM_SEG_MAP_I16_WO(a_pi16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1044 1044 #define IEM_MC_MEM_FLAT_MAP_I16_WO(a_pi16Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1045 #define IEM_MC_MEM_ MAP_U32_ATOMIC(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1046 #define IEM_MC_MEM_ MAP_U32_RW(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1047 #define IEM_MC_MEM_ MAP_U32_WO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1048 #define IEM_MC_MEM_ MAP_U32_RO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1045 #define IEM_MC_MEM_SEG_MAP_U32_ATOMIC(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1046 #define IEM_MC_MEM_SEG_MAP_U32_RW(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1047 #define IEM_MC_MEM_SEG_MAP_U32_WO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1048 #define IEM_MC_MEM_SEG_MAP_U32_RO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1049 1049 #define IEM_MC_MEM_FLAT_MAP_U32_ATOMIC(a_pu32Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1050 1050 #define IEM_MC_MEM_FLAT_MAP_U32_RW(a_pu32Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1051 1051 #define IEM_MC_MEM_FLAT_MAP_U32_WO(a_pu32Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1052 1052 #define IEM_MC_MEM_FLAT_MAP_U32_RO(a_pu32Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1053 #define IEM_MC_MEM_ MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1053 #define IEM_MC_MEM_SEG_MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1054 1054 #define IEM_MC_MEM_FLAT_MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1055 #define IEM_MC_MEM_ MAP_R32_WO(a_pr32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1055 #define IEM_MC_MEM_SEG_MAP_R32_WO(a_pr32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1056 1056 #define IEM_MC_MEM_FLAT_MAP_R32_WO(a_pr32Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1057 #define IEM_MC_MEM_ MAP_U64_ATOMIC(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1058 #define IEM_MC_MEM_ MAP_U64_RW(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1059 #define IEM_MC_MEM_ MAP_U64_WO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1060 #define IEM_MC_MEM_ MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1057 #define IEM_MC_MEM_SEG_MAP_U64_ATOMIC(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1058 #define IEM_MC_MEM_SEG_MAP_U64_RW(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1059 #define IEM_MC_MEM_SEG_MAP_U64_WO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1060 #define IEM_MC_MEM_SEG_MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1061 1061 #define IEM_MC_MEM_FLAT_MAP_U64_ATOMIC(a_pu64Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1062 1062 #define IEM_MC_MEM_FLAT_MAP_U64_RW(a_pu64Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1063 1063 #define IEM_MC_MEM_FLAT_MAP_U64_WO(a_pu64Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1064 1064 #define IEM_MC_MEM_FLAT_MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1065 #define IEM_MC_MEM_ MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1065 #define IEM_MC_MEM_SEG_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1066 1066 #define IEM_MC_MEM_FLAT_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1067 #define IEM_MC_MEM_ MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1067 #define IEM_MC_MEM_SEG_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1068 1068 #define IEM_MC_MEM_FLAT_MAP_R64_WO(a_pr64Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1069 #define IEM_MC_MEM_ MAP_U128_ATOMIC(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1070 #define IEM_MC_MEM_ MAP_U128_RW(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1071 #define IEM_MC_MEM_ MAP_U128_WO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1072 #define IEM_MC_MEM_ MAP_U128_RO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1069 #define IEM_MC_MEM_SEG_MAP_U128_ATOMIC(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1070 #define IEM_MC_MEM_SEG_MAP_U128_RW(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1071 #define IEM_MC_MEM_SEG_MAP_U128_WO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1072 #define IEM_MC_MEM_SEG_MAP_U128_RO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1073 1073 #define IEM_MC_MEM_FLAT_MAP_U128_ATOMIC(a_pu128Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1074 1074 #define IEM_MC_MEM_FLAT_MAP_U128_RW(a_pu128Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1075 1075 #define IEM_MC_MEM_FLAT_MAP_U128_WO(a_pu128Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1076 1076 #define IEM_MC_MEM_FLAT_MAP_U128_RO(a_pu128Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1077 #define IEM_MC_MEM_ MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1077 #define IEM_MC_MEM_SEG_MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1078 1078 #define IEM_MC_MEM_FLAT_MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1079 #define IEM_MC_MEM_ MAP_D80_WO(a_pd80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM(a_iSeg)1079 #define IEM_MC_MEM_SEG_MAP_D80_WO(a_pd80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) IEM_LIVENESS_MEM_SEG(a_iSeg) 1080 1080 #define IEM_MC_MEM_FLAT_MAP_D80_WO(a_pd80Mem, a_bUnmapInfo, a_GCPtrMem) IEM_LIVENESS_MEM_FLAT() 1081 1081 -
trunk/src/VBox/VMM/VMMAll/target-x86/IEMAllN8veRecompFuncs-x86.h
r108278 r108287 8876 8876 8877 8877 /********************************************************************************************************************************* 8878 * Memory mapping (IEM_M EM_MAP_XXX, IEM_MEM_FLAT_MAP_XXX).*8878 * Memory mapping (IEM_MC_MEM_SEG_MAP_XXX, IEM_MC_MEM_FLAT_MAP_XXX). * 8879 8879 *********************************************************************************************************************************/ 8880 8880 8881 #define IEM_MC_MEM_ MAP_U8_ATOMIC(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8881 #define IEM_MC_MEM_SEG_MAP_U8_ATOMIC(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8882 8882 off = iemNativeEmitMemMapCommon<sizeof(uint8_t), IEM_ACCESS_DATA_ATOMIC, 0 /*fAlignMaskAndCtl*/>(\ 8883 8883 pReNative, off, a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU8Atomic, pCallEntry->idxInstr) 8884 8884 8885 #define IEM_MC_MEM_ MAP_U8_RW(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8885 #define IEM_MC_MEM_SEG_MAP_U8_RW(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8886 8886 off = iemNativeEmitMemMapCommon<sizeof(uint8_t), IEM_ACCESS_DATA_RW, 0 /*fAlignMaskAndCtl*/>(\ 8887 8887 pReNative, off, a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU8Rw, pCallEntry->idxInstr) 8888 8888 8889 #define IEM_MC_MEM_ MAP_U8_WO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8889 #define IEM_MC_MEM_SEG_MAP_U8_WO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8890 8890 off = iemNativeEmitMemMapCommon<sizeof(uint8_t), IEM_ACCESS_DATA_W, 0 /*fAlignMaskAndCtl*/>(\ 8891 8891 pReNative, off, a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU8Wo, pCallEntry->idxInstr) \ 8892 8892 8893 #define IEM_MC_MEM_ MAP_U8_RO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8893 #define IEM_MC_MEM_SEG_MAP_U8_RO(a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8894 8894 off = iemNativeEmitMemMapCommon<sizeof(uint8_t), IEM_ACCESS_DATA_R, 0 /*fAlignMaskAndCtl*/>(\ 8895 8895 pReNative, off, a_pu8Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU8Ro, pCallEntry->idxInstr) 8896 8896 8897 8897 8898 #define IEM_MC_MEM_ MAP_U16_ATOMIC(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8898 #define IEM_MC_MEM_SEG_MAP_U16_ATOMIC(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8899 8899 off = iemNativeEmitMemMapCommon<sizeof(uint16_t), IEM_ACCESS_DATA_ATOMIC, sizeof(uint16_t) - 1 /*fAlignMaskAndCtl*/>(\ 8900 8900 pReNative, off, a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU16Atomic, pCallEntry->idxInstr) 8901 8901 8902 #define IEM_MC_MEM_ MAP_U16_RW(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8902 #define IEM_MC_MEM_SEG_MAP_U16_RW(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8903 8903 off = iemNativeEmitMemMapCommon<sizeof(uint16_t), IEM_ACCESS_DATA_RW, sizeof(uint16_t) - 1 /*fAlignMaskAndCtl*/>(\ 8904 8904 pReNative, off, a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU16Rw, pCallEntry->idxInstr) 8905 8905 8906 #define IEM_MC_MEM_ MAP_U16_WO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8906 #define IEM_MC_MEM_SEG_MAP_U16_WO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8907 8907 off = iemNativeEmitMemMapCommon<sizeof(uint16_t), IEM_ACCESS_DATA_W, sizeof(uint16_t) - 1 /*fAlignMaskAndCtl*/>(\ 8908 8908 pReNative, off, a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU16Wo, pCallEntry->idxInstr) \ 8909 8909 8910 #define IEM_MC_MEM_ MAP_U16_RO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8910 #define IEM_MC_MEM_SEG_MAP_U16_RO(a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8911 8911 off = iemNativeEmitMemMapCommon<sizeof(uint16_t), IEM_ACCESS_DATA_R, sizeof(uint16_t) - 1 /*fAlignMaskAndCtl*/>(\ 8912 8912 pReNative, off, a_pu16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU16Ro, pCallEntry->idxInstr) 8913 8913 8914 #define IEM_MC_MEM_ MAP_I16_WO(a_pi16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8914 #define IEM_MC_MEM_SEG_MAP_I16_WO(a_pi16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8915 8915 off = iemNativeEmitMemMapCommon<sizeof(int16_t), IEM_ACCESS_DATA_W, sizeof(uint16_t) - 1 /*fAlignMaskAndCtl*/>(\ 8916 8916 pReNative, off, a_pi16Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU16Wo, pCallEntry->idxInstr) \ 8917 8917 8918 8918 8919 #define IEM_MC_MEM_ MAP_U32_ATOMIC(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8919 #define IEM_MC_MEM_SEG_MAP_U32_ATOMIC(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8920 8920 off = iemNativeEmitMemMapCommon<sizeof(uint32_t), IEM_ACCESS_DATA_ATOMIC, sizeof(uint32_t) - 1 /*fAlignMaskAndCtl*/>(\ 8921 8921 pReNative, off, a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU32Atomic, pCallEntry->idxInstr) 8922 8922 8923 #define IEM_MC_MEM_ MAP_U32_RW(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8923 #define IEM_MC_MEM_SEG_MAP_U32_RW(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8924 8924 off = iemNativeEmitMemMapCommon<sizeof(uint32_t), IEM_ACCESS_DATA_RW, sizeof(uint32_t) - 1 /*fAlignMaskAndCtl*/>(\ 8925 8925 pReNative, off, a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU32Rw, pCallEntry->idxInstr) 8926 8926 8927 #define IEM_MC_MEM_ MAP_U32_WO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8927 #define IEM_MC_MEM_SEG_MAP_U32_WO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8928 8928 off = iemNativeEmitMemMapCommon<sizeof(uint32_t), IEM_ACCESS_DATA_W, sizeof(uint32_t) - 1 /*fAlignMaskAndCtl*/>(\ 8929 8929 pReNative, off, a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU32Wo, pCallEntry->idxInstr) \ 8930 8930 8931 #define IEM_MC_MEM_ MAP_U32_RO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8931 #define IEM_MC_MEM_SEG_MAP_U32_RO(a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8932 8932 off = iemNativeEmitMemMapCommon<sizeof(uint32_t), IEM_ACCESS_DATA_R, sizeof(uint32_t) - 1 /*fAlignMaskAndCtl*/>(\ 8933 8933 pReNative, off, a_pu32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU32Ro, pCallEntry->idxInstr) 8934 8934 8935 #define IEM_MC_MEM_ MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8935 #define IEM_MC_MEM_SEG_MAP_I32_WO(a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8936 8936 off = iemNativeEmitMemMapCommon<sizeof(int32_t), IEM_ACCESS_DATA_W, sizeof(uint32_t) - 1 /*fAlignMaskAndCtl*/>(\ 8937 8937 pReNative, off, a_pi32Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU32Wo, pCallEntry->idxInstr) \ 8938 8938 8939 8939 8940 #define IEM_MC_MEM_ MAP_U64_ATOMIC(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8940 #define IEM_MC_MEM_SEG_MAP_U64_ATOMIC(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8941 8941 off = iemNativeEmitMemMapCommon<sizeof(uint64_t), IEM_ACCESS_DATA_ATOMIC, sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/>(\ 8942 8942 pReNative, off, a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU64Atomic, pCallEntry->idxInstr) 8943 8943 8944 #define IEM_MC_MEM_ MAP_U64_RW(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8944 #define IEM_MC_MEM_SEG_MAP_U64_RW(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8945 8945 off = iemNativeEmitMemMapCommon<sizeof(uint64_t), IEM_ACCESS_DATA_RW, sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/>(\ 8946 8946 pReNative, off, a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU64Rw, pCallEntry->idxInstr) 8947 #define IEM_MC_MEM_ MAP_U64_WO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8947 #define IEM_MC_MEM_SEG_MAP_U64_WO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8948 8948 off = iemNativeEmitMemMapCommon<sizeof(uint64_t), IEM_ACCESS_DATA_W, sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/>(\ 8949 8949 pReNative, off, a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU64Wo, pCallEntry->idxInstr) \ 8950 8950 8951 #define IEM_MC_MEM_ MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8951 #define IEM_MC_MEM_SEG_MAP_U64_RO(a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8952 8952 off = iemNativeEmitMemMapCommon<sizeof(uint64_t), IEM_ACCESS_DATA_R, sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/>(\ 8953 8953 pReNative, off, a_pu64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU64Ro, pCallEntry->idxInstr) 8954 8954 8955 #define IEM_MC_MEM_ MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8955 #define IEM_MC_MEM_SEG_MAP_I64_WO(a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8956 8956 off = iemNativeEmitMemMapCommon<sizeof(int64_t), IEM_ACCESS_DATA_W, sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/>(\ 8957 8957 pReNative, off, a_pi64Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU64Wo, pCallEntry->idxInstr) \ 8958 8958 8959 8959 8960 #define IEM_MC_MEM_ MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8960 #define IEM_MC_MEM_SEG_MAP_R80_WO(a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8961 8961 off = iemNativeEmitMemMapCommon<sizeof(RTFLOAT80U), IEM_ACCESS_DATA_W, sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/>(\ 8962 8962 pReNative, off, a_pr80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataR80Wo, pCallEntry->idxInstr) \ 8963 8963 8964 #define IEM_MC_MEM_ MAP_D80_WO(a_pd80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8964 #define IEM_MC_MEM_SEG_MAP_D80_WO(a_pd80Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8965 8965 off = iemNativeEmitMemMapCommon<sizeof(RTFLOAT80U), IEM_ACCESS_DATA_W, \ 8966 8966 sizeof(uint64_t) - 1 /*fAlignMaskAndCtl*/ /** @todo check BCD align */>(\ … … 8968 8968 8969 8969 8970 #define IEM_MC_MEM_ MAP_U128_ATOMIC(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8970 #define IEM_MC_MEM_SEG_MAP_U128_ATOMIC(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8971 8971 off = iemNativeEmitMemMapCommon<sizeof(RTUINT128U), IEM_ACCESS_DATA_ATOMIC, sizeof(RTUINT128U) - 1 /*fAlignMaskAndCtl*/>(\ 8972 8972 pReNative, off, a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU128Atomic, pCallEntry->idxInstr) 8973 8973 8974 #define IEM_MC_MEM_ MAP_U128_RW(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8974 #define IEM_MC_MEM_SEG_MAP_U128_RW(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8975 8975 off = iemNativeEmitMemMapCommon<sizeof(RTUINT128U), IEM_ACCESS_DATA_RW, sizeof(RTUINT128U) - 1 /*fAlignMaskAndCtl*/>(\ 8976 8976 pReNative, off, a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU128Rw, pCallEntry->idxInstr) 8977 8977 8978 #define IEM_MC_MEM_ MAP_U128_WO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8978 #define IEM_MC_MEM_SEG_MAP_U128_WO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8979 8979 off = iemNativeEmitMemMapCommon<sizeof(RTUINT128U), IEM_ACCESS_DATA_W, sizeof(RTUINT128U) - 1 /*fAlignMaskAndCtl*/>(\ 8980 8980 pReNative, off, a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU128Wo, pCallEntry->idxInstr) \ 8981 8981 8982 #define IEM_MC_MEM_ MAP_U128_RO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \8982 #define IEM_MC_MEM_SEG_MAP_U128_RO(a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem) \ 8983 8983 off = iemNativeEmitMemMapCommon<sizeof(RTUINT128U), IEM_ACCESS_DATA_R, sizeof(RTUINT128U) - 1 /*fAlignMaskAndCtl*/>(\ 8984 8984 pReNative, off, a_pu128Mem, a_bUnmapInfo, a_iSeg, a_GCPtrMem, (uintptr_t)iemNativeHlpMemMapDataU128Ro, pCallEntry->idxInstr)
Note:
See TracChangeset
for help on using the changeset viewer.