VirtualBox

Changeset 40450 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Mar 13, 2012 3:56:22 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
76807
Message:

EM: Refactoring (dropping pVM argument).

Location:
trunk/src/VBox/VMM
Files:
9 edited

Legend:

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

    r40449 r40450  
    7676*******************************************************************************/
    7777#ifndef VBOX_WITH_IEM
    78 DECLINLINE(VBOXSTRICTRC) emInterpretInstructionCPUOuter(PVM pVM, PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pRegFrame,
     78DECLINLINE(VBOXSTRICTRC) emInterpretInstructionCPUOuter(PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pRegFrame,
    7979                                                        RTGCPTR pvFault, EMCODETYPE enmCodeType, uint32_t *pcbSize);
    8080#endif
     
    474474 * @retval  VERR_*                  Fatal errors.
    475475 *
    476  * @param   pVM         The VM handle.
    477476 * @param   pVCpu       The VMCPU handle.
    478477 * @param   pRegFrame   The register frame.
     
    485484 *          to worry about e.g. invalid modrm combinations (!)
    486485 */
    487 VMMDECL(VBOXSTRICTRC) EMInterpretInstruction(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault)
     486VMMDECL(VBOXSTRICTRC) EMInterpretInstruction(PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault)
    488487{
    489488    LogFlow(("EMInterpretInstruction %RGv fault %RGv\n", (RTGCPTR)pRegFrame->rip, pvFault));
     
    511510            Assert(cbOp == pDis->opsize);
    512511            uint32_t cbIgnored;
    513             rc = emInterpretInstructionCPUOuter(pVM, pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_SUPERVISOR, &cbIgnored);
     512            rc = emInterpretInstructionCPUOuter(pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_SUPERVISOR, &cbIgnored);
    514513            if (RT_SUCCESS(rc))
    515514                pRegFrame->rip += cbOp; /* Move on to the next instruction. */
     
    567566        {
    568567            Assert(cbOp == pDis->opsize);
    569             rc = emInterpretInstructionCPUOuter(pVM, pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_SUPERVISOR, pcbWritten);
     568            rc = emInterpretInstructionCPUOuter(pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_SUPERVISOR, pcbWritten);
    570569            if (RT_SUCCESS(rc))
    571570                pRegFrame->rip += cbOp; /* Move on to the next instruction. */
     
    607606 *          Make sure this can't happen!! (will add some assertions/checks later)
    608607 */
    609 VMMDECL(VBOXSTRICTRC) EMInterpretInstructionCpuUpdtPC(PVM pVM, PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pRegFrame,
     608VMMDECL(VBOXSTRICTRC) EMInterpretInstructionCpuUpdtPC(PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pRegFrame,
    610609                                                      RTGCPTR pvFault, EMCODETYPE enmCodeType)
    611610{
    612611    STAM_PROFILE_START(&pVCpu->em.s.CTX_SUFF(pStats)->CTX_MID_Z(Stat,Emulate), a);
    613612    uint32_t cbIgnored;
    614     VBOXSTRICTRC rc = emInterpretInstructionCPUOuter(pVM, pVCpu, pDis, pRegFrame, pvFault, enmCodeType, &cbIgnored);
     613    VBOXSTRICTRC rc = emInterpretInstructionCPUOuter(pVCpu, pDis, pRegFrame, pvFault, enmCodeType, &cbIgnored);
    615614    STAM_PROFILE_STOP(&pVCpu->em.s.CTX_SUFF(pStats)->CTX_MID_Z(Stat,Emulate), a);
    616615    if (RT_SUCCESS(rc))
     
    33453344 * @retval  VERR_*                  Fatal errors.
    33463345 *
    3347  * @param   pVM         The VM handle.
    33483346 * @param   pVCpu       The VMCPU handle.
    33493347 * @param   pDis        The disassembler cpu state for the instruction to be
     
    33613359 *          Make sure this can't happen!! (will add some assertions/checks later)
    33623360 */
    3363 DECLINLINE(VBOXSTRICTRC) emInterpretInstructionCPUOuter(PVM pVM, PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pRegFrame,
     3361DECLINLINE(VBOXSTRICTRC) emInterpretInstructionCPUOuter(PVMCPU pVCpu, PDISCPUSTATE pDis, PCPUMCTXCORE pRegFrame,
    33643362                                                        RTGCPTR pvFault, EMCODETYPE enmCodeType, uint32_t *pcbSize)
    33653363{
    33663364    STAM_PROFILE_START(&pVCpu->em.s.CTX_SUFF(pStats)->CTX_MID_Z(Stat,Emulate), a);
    3367     VBOXSTRICTRC rc = emInterpretInstructionCPU(pVM, pVCpu, pDis, pRegFrame, pvFault, enmCodeType, pcbSize);
     3365    VBOXSTRICTRC rc = emInterpretInstructionCPU(pVCpu->CTX_SUFF(pVM), pVCpu, pDis, pRegFrame, pvFault, enmCodeType, pcbSize);
    33683366    STAM_PROFILE_STOP(&pVCpu->em.s.CTX_SUFF(pStats)->CTX_MID_Z(Stat,Emulate), a);
    33693367    if (RT_SUCCESS(rc))
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r40447 r40450  
    807807VMMDECL(VBOXSTRICTRC) PGMInterpretInstruction(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault)
    808808{
    809     VBOXSTRICTRC rc = EMInterpretInstruction(pVM, pVCpu, pRegFrame, pvFault);
     809    VBOXSTRICTRC rc = EMInterpretInstruction(pVCpu, pRegFrame, pvFault);
    810810    if (rc == VERR_EM_INTERPRETER)
    811811        rc = VINF_EM_RAW_EMULATE_INSTR;
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r40442 r40450  
    840840     * Must do this in raw mode (!); XP boot will fail otherwise.
    841841     */
    842     VBOXSTRICTRC rc2 = EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_ALL);
     842    VBOXSTRICTRC rc2 = EMInterpretInstructionCpuUpdtPC(pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_ALL);
    843843    if (RT_SUCCESS(rc2))
    844844        AssertMsg(rc2 == VINF_SUCCESS, ("%Rrc\n", VBOXSTRICTRC_VAL(rc2))); /* ASSUMES no complicated stuff here. */
     
    979979     * Interpret the instruction.
    980980     */
    981     VBOXSTRICTRC rc = EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_ALL);
     981    VBOXSTRICTRC rc = EMInterpretInstructionCpuUpdtPC(pVCpu, pDis, pRegFrame, pvFault, EMCODETYPE_ALL);
    982982    if (RT_SUCCESS(rc))
    983983        AssertMsg(rc == VINF_SUCCESS, ("%Rrc\n", VBOXSTRICTRC_VAL(rc))); /* ASSUMES no complicated stuff here. */
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r40449 r40450  
    20572057        Log2(("SVM: %RGv mov cr%d, \n", (RTGCPTR)pCtx->rip, exitCode - SVM_EXIT_WRITE_CR0));
    20582058        STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitCRxWrite[exitCode - SVM_EXIT_WRITE_CR0]);
    2059         rc = EMInterpretInstruction(pVM, pVCpu, CPUMCTX2CORE(pCtx), 0);
     2059        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
    20602060
    20612061        switch (exitCode - SVM_EXIT_WRITE_CR0)
     
    20962096        Log2(("SVM: %RGv mov x, cr%d\n", (RTGCPTR)pCtx->rip, exitCode - SVM_EXIT_READ_CR0));
    20972097        STAM_COUNTER_INC(&pVCpu->hwaccm.s.StatExitCRxRead[exitCode - SVM_EXIT_READ_CR0]);
    2098         rc = EMInterpretInstruction(pVM, pVCpu, CPUMCTX2CORE(pCtx), 0);
     2098        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
    20992099        if (rc == VINF_SUCCESS)
    21002100        {
     
    21312131        }
    21322132
    2133         rc = EMInterpretInstruction(pVM, pVCpu, CPUMCTX2CORE(pCtx), 0);
     2133        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
    21342134        if (rc == VINF_SUCCESS)
    21352135        {
     
    21662166        }
    21672167
    2168         rc = EMInterpretInstruction(pVM, pVCpu, CPUMCTX2CORE(pCtx), 0);
     2168        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
    21692169        if (rc == VINF_SUCCESS)
    21702170        {
     
    24502450        STAM_COUNTER_INC((pVMCB->ctrl.u64ExitInfo1 == 0) ? &pVCpu->hwaccm.s.StatExitRdmsr : &pVCpu->hwaccm.s.StatExitWrmsr);
    24512451        Log(("SVM: %s\n", (pVMCB->ctrl.u64ExitInfo1 == 0) ? "rdmsr" : "wrmsr"));
    2452         rc = EMInterpretInstruction(pVM, pVCpu, CPUMCTX2CORE(pCtx), 0);
     2452        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
    24532453        if (rc == VINF_SUCCESS)
    24542454        {
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r40449 r40450  
    33353335
    33363336                    default:
    3337                         rc = EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, pDis, CPUMCTX2CORE(pCtx), 0, EMCODETYPE_SUPERVISOR);
     3337                        rc = EMInterpretInstructionCpuUpdtPC(pVCpu, pDis, CPUMCTX2CORE(pCtx), 0, EMCODETYPE_SUPERVISOR);
    33383338                        fUpdateRIP = false;
    33393339                        break;
     
    36603660        /* Note: the intel manual claims there's a REX version of RDMSR that's slightly different, so we play safe by completely disassembling the instruction. */
    36613661        Log2(("VMX: %s\n", (exitReason == VMX_EXIT_RDMSR) ? "rdmsr" : "wrmsr"));
    3662         rc = EMInterpretInstruction(pVM, pVCpu, CPUMCTX2CORE(pCtx), 0);
     3662        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
    36633663        if (rc == VINF_SUCCESS)
    36643664        {
  • trunk/src/VBox/VMM/VMMR3/EMRaw.cpp

    r40449 r40450  
    605605                AssertRC(rc);
    606606
    607                 rc = VBOXSTRICTRC_TODO(EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, &cpu, CPUMCTX2CORE(pCtx), 0, EMCODETYPE_SUPERVISOR));
     607                rc = VBOXSTRICTRC_TODO(EMInterpretInstructionCpuUpdtPC(pVCpu, &cpu, CPUMCTX2CORE(pCtx), 0, EMCODETYPE_SUPERVISOR));
    608608                if (RT_SUCCESS(rc))
    609609                    return rc;
     
    10941094#endif
    10951095
    1096                     rc = VBOXSTRICTRC_TODO(EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, &Cpu, CPUMCTX2CORE(pCtx), 0, EMCODETYPE_SUPERVISOR));
     1096                    rc = VBOXSTRICTRC_TODO(EMInterpretInstructionCpuUpdtPC(pVCpu, &Cpu, CPUMCTX2CORE(pCtx), 0, EMCODETYPE_SUPERVISOR));
    10971097                    if (RT_SUCCESS(rc))
    10981098                    {
  • trunk/src/VBox/VMM/VMMRC/PATMRC.cpp

    r40449 r40450  
    112112            /* This part of the page was not patched; try to emulate the instruction. */
    113113            LogFlow(("PATMHandleWriteToPatchPage: Interpret %x accessing %RRv\n", pRegFrame->eip, GCPtr));
    114             int rc = EMInterpretInstruction(pVM, VMMGetCpu0(pVM), pRegFrame, (RTGCPTR)(RTRCUINTPTR)GCPtr);
     114            int rc = EMInterpretInstruction(VMMGetCpu0(pVM), pRegFrame, (RTGCPTR)(RTRCUINTPTR)GCPtr);
    115115            if (rc == VINF_SUCCESS)
    116116            {
     
    520520            }
    521521
    522             rc = EMInterpretInstructionCpuUpdtPC(pVM, VMMGetCpu0(pVM), &cpu, pRegFrame, 0 /* not relevant here */,
     522            rc = EMInterpretInstructionCpuUpdtPC(VMMGetCpu0(pVM), &cpu, pRegFrame, 0 /* not relevant here */,
    523523                                                 EMCODETYPE_SUPERVISOR);
    524524            if (rc != VINF_SUCCESS)
  • trunk/src/VBox/VMM/VMMRC/SELMRC.cpp

    r40447 r40450  
    194194        /** @todo should check if any affected selectors are loaded. */
    195195        uint32_t cb;
    196         rc = EMInterpretInstructionEx(pVM, pVCpu, pRegFrame, (RTGCPTR)(RTRCUINTPTR)pvFault, &cb);
     196        rc = EMInterpretInstructionEx(pVCpu, pRegFrame, (RTGCPTR)(RTRCUINTPTR)pvFault, &cb);
    197197        if (RT_SUCCESS(rc) && cb)
    198198        {
     
    305305     */
    306306    uint32_t cb;
    307     int rc = EMInterpretInstructionEx(pVM, pVCpu, pRegFrame, (RTGCPTR)(RTRCUINTPTR)pvFault, &cb);
     307    int rc = EMInterpretInstructionEx(pVCpu, pRegFrame, (RTGCPTR)(RTRCUINTPTR)pvFault, &cb);
    308308    if (RT_SUCCESS(rc) && cb)
    309309    {
  • trunk/src/VBox/VMM/VMMRC/TRPMRCHandlers.cpp

    r40449 r40450  
    556556        {
    557557            LogFlow(("TRPMGCTrap06Handler: -> EMInterpretInstructionCPU\n"));
    558             rc = EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, &Cpu, pRegFrame, PC, EMCODETYPE_SUPERVISOR);
     558            rc = EMInterpretInstructionCpuUpdtPC(pVCpu, &Cpu, pRegFrame, PC, EMCODETYPE_SUPERVISOR);
    559559        }
    560560        /* Never generate a raw trap here; it might be an instruction, that requires emulation. */
     
    798798        case OP_WRMSR:
    799799        {
    800             rc = EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, pCpu, pRegFrame, PC, EMCODETYPE_SUPERVISOR);
     800            rc = EMInterpretInstructionCpuUpdtPC(pVCpu, pCpu, pRegFrame, PC, EMCODETYPE_SUPERVISOR);
    801801            if (rc == VERR_EM_INTERPRETER)
    802802                rc = VINF_EM_RAW_EXCEPTION_PRIVILEGED;
     
    874874        case OP_RDPMC:
    875875        {
    876             rc = EMInterpretInstructionCpuUpdtPC(pVM, pVCpu, pCpu, pRegFrame, PC, EMCODETYPE_SUPERVISOR);
     876            rc = EMInterpretInstructionCpuUpdtPC(pVCpu, pCpu, pRegFrame, PC, EMCODETYPE_SUPERVISOR);
    877877            if (rc == VERR_EM_INTERPRETER)
    878878                rc = VINF_EM_RAW_EXCEPTION_PRIVILEGED;
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