VirtualBox

Changeset 72600 in vbox


Ignore:
Timestamp:
Jun 18, 2018 1:40:48 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123096
Message:

VMM: Eliminated VBOX_WITH_2ND_IEM_STEP.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r72536 r72600  
    404404# Enable the debugger GUI.
    405405VBOX_WITH_DEBUGGER_GUI = 1
    406 # Enables the second step using IEM (the interpreter).
    407 VBOX_WITH_2ND_IEM_STEP = 1
    408406# Enables the third step using IEM (the interpreter).
    409407VBOX_WITH_3RD_IEM_STEP = 1
  • trunk/src/VBox/VMM/Config.kmk

    r72503 r72600  
    3030# Can be prepended to by setting it in LocalConfig.kmk
    3131VMM_COMMON_DEFS += VBOX_IN_VMM
    32 ifdef VBOX_WITH_2ND_IEM_STEP
    33  VMM_COMMON_DEFS += VBOX_WITH_2ND_IEM_STEP
    34 endif
    3532ifdef VBOX_WITH_3RD_IEM_STEP
    3633 VMM_COMMON_DEFS += VBOX_WITH_3RD_IEM_STEP
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r71081 r72600  
    13081308        }
    13091309        else
    1310 # ifdef VBOX_WITH_2ND_IEM_STEP
    13111310            *ppv = pVM->pgm.s.CTXALLSUFF(pvZeroPg);
    1312 # else
    1313         {
    1314             /* This kind of screws up the TLB entry if accessed from a different section afterwards. */
    1315             static uint8_t s_abPlayItSafe[0x1000*2];  /* I don't dare return the zero page at the moment. */
    1316             *ppv = (uint8_t *)((uintptr_t)&s_abPlayItSafe[0x1000] & ~(uintptr_t)0xfff);
    1317         }
    1318 # endif
    13191311        *ppMap = NULL;
    13201312        return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r72596 r72600  
    68026802    if (IoExitInfo.n.u1Str)
    68036803    {
    6804 #ifdef VBOX_WITH_2ND_IEM_STEP
    68056804        /* INS/OUTS - I/O String instruction. */
    68066805        /** @todo Huh? why can't we use the segment prefix information given by AMD-V
     
    68616860        }
    68626861        fUpdateRipAlready = true;
    6863 
    6864 #else
    6865         /* INS/OUTS - I/O String instruction. */
    6866         PDISCPUSTATE pDis = &pVCpu->hm.s.DisState;
    6867 
    6868         /** @todo Huh? why can't we use the segment prefix information given by AMD-V
    6869          *        in EXITINFO1? Investigate once this thing is up and running. */
    6870 
    6871         rcStrict = EMInterpretDisasCurrent(pVM, pVCpu, pDis, NULL);
    6872         if (rcStrict == VINF_SUCCESS)
    6873         {
    6874             if (IoExitInfo.n.u1Type == SVM_IOIO_WRITE)
    6875             {
    6876                 rcStrict = IOMInterpretOUTSEx(pVM, pVCpu, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, pDis->fPrefix,
    6877                                               (DISCPUMODE)pDis->uAddrMode, cbValue);
    6878                 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitIOStringWrite);
    6879             }
    6880             else
    6881             {
    6882                 rcStrict = IOMInterpretINSEx(pVM, pVCpu, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, pDis->fPrefix,
    6883                                              (DISCPUMODE)pDis->uAddrMode, cbValue);
    6884                 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitIOStringRead);
    6885             }
    6886         }
    6887         else
    6888             rcStrict = VINF_EM_RAW_EMULATE_INSTR;
    6889 #endif
    68906862    }
    68916863    else
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r72596 r72600  
    1273212732    if (fIOString)
    1273312733    {
    12734 #ifdef VBOX_WITH_2ND_IEM_STEP /* This used to gurus with debian 32-bit guest without NP (on ATA reads).
    12735                                  See @bugref{5752#c158}. Should work now. */
    1273612734        /*
    1273712735         * INS/OUTS - I/O String instruction.
     
    1277912777        HMCPU_CF_SET(pVCpu, HM_CHANGED_GUEST_RIP);
    1278012778        fUpdateRipAlready = true;
    12781 #else
    12782         PDISCPUSTATE pDis = &pVCpu->hm.s.DisState;
    12783         rcStrict = EMInterpretDisasCurrent(pVM, pVCpu, pDis, NULL /* pcbInstr */);
    12784         if (RT_SUCCESS(rcStrict))
    12785         {
    12786             if (fIOWrite)
    12787             {
    12788                 rcStrict = IOMInterpretOUTSEx(pVM, pVCpu, CPUMCTX2CORE(pMixedCtx), uIOPort, pDis->fPrefix,
    12789                                               (DISCPUMODE)pDis->uAddrMode, cbValue);
    12790                 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitIOStringWrite);
    12791             }
    12792             else
    12793             {
    12794                 rcStrict = IOMInterpretINSEx(pVM, pVCpu, CPUMCTX2CORE(pMixedCtx), uIOPort, pDis->fPrefix,
    12795                                              (DISCPUMODE)pDis->uAddrMode, cbValue);
    12796                 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitIOStringRead);
    12797             }
    12798         }
    12799         else
    12800         {
    12801             AssertMsg(rcStrict == VERR_EM_INTERPRETER, ("rcStrict=%Rrc RIP=%#RX64\n", VBOXSTRICTRC_VAL(rcStrict),
    12802                                                         pMixedCtx->rip));
    12803             rcStrict = VINF_EM_RAW_EMULATE_INSTR;
    12804         }
    12805 #endif
    1280612779    }
    1280712780    else
Note: See TracChangeset for help on using the changeset viewer.

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