Changeset 100836 in vbox
- Timestamp:
- Aug 9, 2023 3:06:08 PM (20 months ago)
- svn:sync-xref-src-repo-rev:
- 158736
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h
r100835 r100836 8362 8362 { 8363 8363 case IEMMODE_16BIT: 8364 IEM_MC_BEGIN(3, 2);8364 IEM_MC_BEGIN(3, 3); 8365 8365 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 8366 8366 IEM_MC_ARG_CONST(uint8_t, cShiftArg,/*=1*/1, 1); 8367 8367 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 8368 8368 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8369 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 8369 8370 8370 8371 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8371 8372 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8372 IEM_MC_MEM_MAP (pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);8373 IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 8373 8374 IEM_MC_FETCH_EFLAGS(EFlags); 8374 8375 IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags); 8375 8376 8376 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW);8377 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); 8377 8378 IEM_MC_COMMIT_EFLAGS(EFlags); 8378 8379 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 8381 8382 8382 8383 case IEMMODE_32BIT: 8383 IEM_MC_BEGIN(3, 2);8384 IEM_MC_BEGIN(3, 3); 8384 8385 IEM_MC_ARG(uint32_t *, pu32Dst, 0); 8385 8386 IEM_MC_ARG_CONST(uint8_t, cShiftArg,/*=1*/1, 1); 8386 8387 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 8387 8388 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8389 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 8388 8390 8389 8391 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8390 8392 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8391 IEM_MC_MEM_MAP (pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);8393 IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 8392 8394 IEM_MC_FETCH_EFLAGS(EFlags); 8393 8395 IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags); 8394 8396 8395 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW);8397 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); 8396 8398 IEM_MC_COMMIT_EFLAGS(EFlags); 8397 8399 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 8400 8402 8401 8403 case IEMMODE_64BIT: 8402 IEM_MC_BEGIN(3, 2);8404 IEM_MC_BEGIN(3, 3); 8403 8405 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 8404 8406 IEM_MC_ARG_CONST(uint8_t, cShiftArg,/*=1*/1, 1); 8405 8407 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 8406 8408 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8409 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 8407 8410 8408 8411 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8409 8412 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8410 IEM_MC_MEM_MAP (pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);8413 IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 8411 8414 IEM_MC_FETCH_EFLAGS(EFlags); 8412 8415 IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags); 8413 8416 8414 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW);8417 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); 8415 8418 IEM_MC_COMMIT_EFLAGS(EFlags); 8416 8419 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 8563 8566 { 8564 8567 case IEMMODE_16BIT: 8565 IEM_MC_BEGIN(3, 2);8568 IEM_MC_BEGIN(3, 3); 8566 8569 IEM_MC_ARG(uint16_t *, pu16Dst, 0); 8567 8570 IEM_MC_ARG(uint8_t, cShiftArg, 1); 8568 8571 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 8569 8572 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8573 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 8570 8574 8571 8575 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8572 8576 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8573 8577 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 8574 IEM_MC_MEM_MAP (pu16Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);8578 IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 8575 8579 IEM_MC_FETCH_EFLAGS(EFlags); 8576 8580 IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU16, pu16Dst, cShiftArg, pEFlags); 8577 8581 8578 IEM_MC_MEM_COMMIT_AND_UNMAP (pu16Dst, IEM_ACCESS_DATA_RW);8582 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu16Dst, bUnmapInfo); 8579 8583 IEM_MC_COMMIT_EFLAGS(EFlags); 8580 8584 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 8583 8587 8584 8588 case IEMMODE_32BIT: 8585 IEM_MC_BEGIN(3, 2);8589 IEM_MC_BEGIN(3, 3); 8586 8590 IEM_MC_ARG(uint32_t *, pu32Dst, 0); 8587 8591 IEM_MC_ARG(uint8_t, cShiftArg, 1); 8588 8592 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 8589 8593 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8594 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 8590 8595 8591 8596 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8592 8597 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8593 8598 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 8594 IEM_MC_MEM_MAP (pu32Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);8599 IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 8595 8600 IEM_MC_FETCH_EFLAGS(EFlags); 8596 8601 IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU32, pu32Dst, cShiftArg, pEFlags); 8597 8602 8598 IEM_MC_MEM_COMMIT_AND_UNMAP (pu32Dst, IEM_ACCESS_DATA_RW);8603 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu32Dst, bUnmapInfo); 8599 8604 IEM_MC_COMMIT_EFLAGS(EFlags); 8600 8605 IEM_MC_ADVANCE_RIP_AND_FINISH(); … … 8603 8608 8604 8609 case IEMMODE_64BIT: 8605 IEM_MC_BEGIN(3, 2);8610 IEM_MC_BEGIN(3, 3); 8606 8611 IEM_MC_ARG(uint64_t *, pu64Dst, 0); 8607 8612 IEM_MC_ARG(uint8_t, cShiftArg, 1); 8608 8613 IEM_MC_ARG_LOCAL_EFLAGS(pEFlags, EFlags, 2); 8609 8614 IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst); 8615 IEM_MC_LOCAL(uint8_t, bUnmapInfo); 8610 8616 8611 8617 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); 8612 8618 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 8613 8619 IEM_MC_FETCH_GREG_U8(cShiftArg, X86_GREG_xCX); 8614 IEM_MC_MEM_MAP (pu64Dst, IEM_ACCESS_DATA_RW, pVCpu->iem.s.iEffSeg, GCPtrEffDst, 0 /*arg*/);8620 IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); 8615 8621 IEM_MC_FETCH_EFLAGS(EFlags); 8616 8622 IEM_MC_CALL_VOID_AIMPL_3(pImpl->pfnNormalU64, pu64Dst, cShiftArg, pEFlags); 8617 8623 8618 IEM_MC_MEM_COMMIT_AND_UNMAP (pu64Dst, IEM_ACCESS_DATA_RW);8624 IEM_MC_MEM_COMMIT_AND_UNMAP_RW(pu64Dst, bUnmapInfo); 8619 8625 IEM_MC_COMMIT_EFLAGS(EFlags); 8620 8626 IEM_MC_ADVANCE_RIP_AND_FINISH();
Note:
See TracChangeset
for help on using the changeset viewer.