Changeset 97508 in vbox
- Timestamp:
- Nov 11, 2022 11:47:17 AM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h
r97506 r97508 11518 11518 /* 64-bit mode: Intel has a fixed default opcode size of 64-bit. AMD64 OTOH defaults to 32-bit and ignores REX.W. */ 11519 11519 if (pVCpu->iem.s.enmCpuMode != IEMMODE_64BIT) 11520 { }11520 { /* likely */ } 11521 11521 else if (IEM_IS_GUEST_CPU_INTEL(pVCpu)) 11522 IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();11522 pVCpu->iem.s.enmEffOpSize = pVCpu->iem.s.enmDefOpSize = IEMMODE_64BIT; /** @todo what does VIA do? */ 11523 11523 else if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT) 11524 11524 pVCpu->iem.s.enmEffOpSize = IEMMODE_32BIT; … … 11541 11541 return VINF_SUCCESS; 11542 11542 11543 case IEMMODE_32BIT: 11544 IEM_MC_BEGIN(3, 1); 11545 IEM_MC_ARG(uint16_t, u16Sel, 0); 11546 IEM_MC_ARG(uint32_t, offSeg, 1); 11547 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize, IEMMODE_32BIT, 2); 11548 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc); 11549 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0); 11550 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 11551 IEM_MC_FETCH_MEM_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 11552 IEM_MC_FETCH_MEM_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 4); 11553 IEM_MC_CALL_CIMPL_3(pfnCImpl, u16Sel, offSeg, enmEffOpSize); 11554 IEM_MC_END(); 11555 return VINF_SUCCESS; 11556 11543 11557 case IEMMODE_64BIT: 11544 11558 Assert(!IEM_IS_GUEST_CPU_AMD(pVCpu)); … … 11552 11566 IEM_MC_FETCH_MEM_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc); 11553 11567 IEM_MC_FETCH_MEM_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 8); 11554 IEM_MC_CALL_CIMPL_3(pfnCImpl, u16Sel, offSeg, enmEffOpSize);11555 IEM_MC_END();11556 return VINF_SUCCESS;11557 11558 case IEMMODE_32BIT:11559 IEM_MC_BEGIN(3, 1);11560 IEM_MC_ARG(uint16_t, u16Sel, 0);11561 IEM_MC_ARG(uint32_t, offSeg, 1);11562 IEM_MC_ARG_CONST(IEMMODE, enmEffOpSize, IEMMODE_32BIT, 2);11563 IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);11564 IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);11565 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();11566 IEM_MC_FETCH_MEM_U32(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);11567 IEM_MC_FETCH_MEM_U16_DISP(u16Sel, pVCpu->iem.s.iEffSeg, GCPtrEffSrc, 4);11568 11568 IEM_MC_CALL_CIMPL_3(pfnCImpl, u16Sel, offSeg, enmEffOpSize); 11569 11569 IEM_MC_END();
Note:
See TracChangeset
for help on using the changeset viewer.