VirtualBox

Changeset 97508 in vbox


Ignore:
Timestamp:
Nov 11, 2022 11:47:17 AM (2 years ago)
Author:
vboxsync
Message:

VMM/IEM: iemOpHlp_Grp5_far_Ep cleanup. bugref:9898

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h

    r97506 r97508  
    1151811518    /* 64-bit mode: Intel has a fixed default opcode size of 64-bit. AMD64 OTOH defaults to 32-bit and ignores REX.W. */
    1151911519    if (pVCpu->iem.s.enmCpuMode != IEMMODE_64BIT)
    11520     { }
     11520    { /* likely */ }
    1152111521    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? */
    1152311523    else if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    1152411524        pVCpu->iem.s.enmEffOpSize = IEMMODE_32BIT;
     
    1154111541            return VINF_SUCCESS;
    1154211542
     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
    1154311557        case IEMMODE_64BIT:
    1154411558            Assert(!IEM_IS_GUEST_CPU_AMD(pVCpu));
     
    1155211566            IEM_MC_FETCH_MEM_U64(offSeg, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
    1155311567            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);
    1156811568            IEM_MC_CALL_CIMPL_3(pfnCImpl, u16Sel, offSeg, enmEffOpSize);
    1156911569            IEM_MC_END();
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette