VirtualBox

Changeset 9708 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 16, 2008 10:01:38 AM (17 years ago)
Author:
vboxsync
Message:

Use RIP everywhere

Location:
trunk/src/VBox/VMM/VMMR0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r9660 r9708  
    349349#ifdef VBOX_STRICT
    350350    if (pEvent->n.u8Vector == 0xE)
    351         Log(("SVM: Inject int %d at %VGv error code=%08x CR2=%08x intInfo=%08x\n", pEvent->n.u8Vector, pCtx->eip, pEvent->n.u32ErrorCode, pCtx->cr2, pEvent->au64[0]));
     351        Log(("SVM: Inject int %d at %VGv error code=%08x CR2=%08x intInfo=%08x\n", pEvent->n.u8Vector, pCtx->rip, pEvent->n.u32ErrorCode, pCtx->cr2, pEvent->au64[0]));
    352352    else
    353353    if (pEvent->n.u8Vector < 0x20)
    354         Log(("SVM: Inject int %d at %VGv error code=%08x\n", pEvent->n.u8Vector, pCtx->eip, pEvent->n.u32ErrorCode));
     354        Log(("SVM: Inject int %d at %VGv error code=%08x\n", pEvent->n.u8Vector, pCtx->rip, pEvent->n.u32ErrorCode));
    355355    else
    356356    {
    357         Log(("INJ-EI: %x at %VGv\n", pEvent->n.u8Vector, pCtx->eip));
     357        Log(("INJ-EI: %x at %VGv\n", pEvent->n.u8Vector, pCtx->rip));
    358358        Assert(!VM_FF_ISSET(pVM, VM_FF_INHIBIT_INTERRUPTS));
    359359        Assert(pCtx->eflags.u32 & X86_EFL_IF);
     
    383383        SVM_EVENT Event;
    384384
    385         Log(("Reinjecting event %08x %08x at %VGv\n", pVM->hwaccm.s.Event.intInfo, pVM->hwaccm.s.Event.errCode, pCtx->eip));
     385        Log(("Reinjecting event %08x %08x at %VGv\n", pVM->hwaccm.s.Event.intInfo, pVM->hwaccm.s.Event.errCode, pCtx->rip));
    386386        STAM_COUNTER_INC(&pVM->hwaccm.s.StatIntReinject);
    387387        Event.au64[0] = pVM->hwaccm.s.Event.intInfo;
     
    429429        }
    430430        else
    431             Log(("Pending interrupt blocked at %VGv by VM_FF_INHIBIT_INTERRUPTS!!\n", pCtx->eip));
     431            Log(("Pending interrupt blocked at %VGv by VM_FF_INHIBIT_INTERRUPTS!!\n", pCtx->rip));
    432432    }
    433433
     
    772772    if (VM_FF_ISSET(pVM, VM_FF_INHIBIT_INTERRUPTS))
    773773    {
    774         Log(("VM_FF_INHIBIT_INTERRUPTS at %VGv successor %VGv\n", pCtx->eip, EMGetInhibitInterruptsPC(pVM)));
    775         if (pCtx->eip != EMGetInhibitInterruptsPC(pVM))
     774        Log(("VM_FF_INHIBIT_INTERRUPTS at %VGv successor %VGv\n", pCtx->rip, EMGetInhibitInterruptsPC(pVM)));
     775        if (pCtx->rip != EMGetInhibitInterruptsPC(pVM))
    776776        {
    777777            /** @note we intentionally don't clear VM_FF_INHIBIT_INTERRUPTS here.
     
    10741074    if (pVMCB->ctrl.u64IntShadow & SVM_INTERRUPT_SHADOW_ACTIVE)
    10751075    {
    1076         Log(("uInterruptState %x eip=%VGv\n", pVMCB->ctrl.u64IntShadow, pCtx->eip));
    1077         EMSetInhibitInterruptsPC(pVM, pCtx->eip);
     1076        Log(("uInterruptState %x eip=%VGv\n", pVMCB->ctrl.u64IntShadow, pCtx->rip));
     1077        EMSetInhibitInterruptsPC(pVM, pCtx->rip);
    10781078    }
    10791079    else
     
    10921092        &&  pVMCB->ctrl.ExitIntInfo.n.u3Type != SVM_EVENT_SOFTWARE_INT /* we don't care about 'int xx' as the instruction will be restarted. */)
    10931093    {
    1094         Log(("Pending inject %VX64 at %08x exit=%08x\n", pVM->hwaccm.s.Event.intInfo, pCtx->eip, exitCode));
     1094        Log(("Pending inject %VX64 at %VGv exit=%08x\n", pVM->hwaccm.s.Event.intInfo, pCtx->rip, exitCode));
    10951095        pVM->hwaccm.s.Event.fPending = true;
    10961096        /* Error code present? (redundant) */
     
    11391139            uint32_t oldCR0;
    11401140
    1141             Log(("#NM fault at %VGv\n", pCtx->eip));
     1141            Log(("#NM fault at %VGv\n", pCtx->rip));
    11421142
    11431143            /** @todo don't intercept #NM exceptions anymore when we've activated the guest FPU state. */
     
    11841184                 * Forward the trap to the guest by injecting the exception and resuming execution.
    11851185                 */
    1186                 Log(("Page fault at %VGv cr2=%VGv error code %x\n", pCtx->eip, uFaultAddress, errCode));
     1186                Log(("Page fault at %VGv cr2=%VGv error code %x\n", pCtx->rip, uFaultAddress, errCode));
    11871187                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitGuestPF);
    11881188
     
    12051205            Assert(!pVM->hwaccm.s.fNestedPaging);
    12061206
    1207             Log2(("Page fault at %VGv cr2=%VGv error code %x\n", pCtx->eip, uFaultAddress, errCode));
     1207            Log2(("Page fault at %VGv cr2=%VGv error code %x\n", pCtx->rip, uFaultAddress, errCode));
    12081208            /* Exit qualification contains the linear address of the page fault. */
    12091209            TRPMAssertTrap(pVM, X86_XCPT_PF, TRPM_TRAP);
     
    12131213            /* Forward it to our trap handler first, in case our shadow pages are out of sync. */
    12141214            rc = PGMTrap0eHandler(pVM, errCode, CPUMCTX2CORE(pCtx), (RTGCPTR)uFaultAddress);
    1215             Log2(("PGMTrap0eHandler %VGv returned %Vrc\n", pCtx->eip, rc));
     1215            Log2(("PGMTrap0eHandler %VGv returned %Vrc\n", pCtx->rip, rc));
    12161216            if (rc == VINF_SUCCESS)
    12171217            {   /* We've successfully synced our shadow pages, so let's just continue execution. */
    1218                 Log2(("Shadow page fault at %VGv cr2=%VGv error code %x\n", pCtx->eip, uFaultAddress, errCode));
     1218                Log2(("Shadow page fault at %VGv cr2=%VGv error code %x\n", pCtx->rip, uFaultAddress, errCode));
    12191219                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitShadowPF);
    12201220
     
    12701270                break;
    12711271            }
    1272             Log(("Trap %x at %VGv\n", vector, pCtx->eip));
     1272            Log(("Trap %x at %VGv\n", vector, pCtx->rip));
    12731273
    12741274            Event.au64[0]    = 0;
     
    13191319                break;
    13201320            }
    1321             Log(("Trap %x at %VGv esi=%x\n", vector, pCtx->eip, pCtx->esi));
     1321            Log(("Trap %x at %VGv esi=%x\n", vector, pCtx->rip, pCtx->esi));
    13221322            SVMR0InjectEvent(pVM, pVMCB, pCtx, &Event);
    13231323
     
    13431343        Assert(pVM->hwaccm.s.fNestedPaging);
    13441344
    1345         Log(("Nested page fault at %VGv cr2=%VGp error code %x\n", pCtx->eip, uFaultAddress, errCode));
     1345        Log(("Nested page fault at %VGv cr2=%VGp error code %x\n", pCtx->rip, uFaultAddress, errCode));
    13461346        /* Exit qualification contains the linear address of the page fault. */
    13471347        TRPMAssertTrap(pVM, X86_XCPT_PF, TRPM_TRAP);
     
    13511351        /* Handle the pagefault trap for the nested shadow table. */
    13521352        rc = PGMR0Trap0eHandlerNestedPaging(pVM, PGMGetHostMode(pVM), errCode, CPUMCTX2CORE(pCtx), uFaultAddress);
    1353         Log2(("PGMR0Trap0eHandlerNestedPaging %VGv returned %Vrc\n", pCtx->eip, rc));
     1353        Log2(("PGMR0Trap0eHandlerNestedPaging %VGv returned %Vrc\n", pCtx->rip, rc));
    13541354        if (rc == VINF_SUCCESS)
    13551355        {   /* We've successfully synced our shadow pages, so let's just continue execution. */
    1356             Log2(("Shadow page fault at %VGv cr2=%VGp error code %x\n", pCtx->eip, uFaultAddress, errCode));
     1356            Log2(("Shadow page fault at %VGv cr2=%VGp error code %x\n", pCtx->rip, uFaultAddress, errCode));
    13571357            STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitShadowPF);
    13581358
     
    13931393        STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitInvd);
    13941394        /* Skip instruction and continue directly. */
    1395         pCtx->eip += 2;     /** @note hardcoded opcode size! */
     1395        pCtx->rip += 2;     /** @note hardcoded opcode size! */
    13961396        /* Continue execution.*/
    13971397        STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
     
    14061406        {
    14071407            /* Update EIP and continue execution. */
    1408             pCtx->eip += 2;             /** @note hardcoded opcode size! */
     1408            pCtx->rip += 2;             /** @note hardcoded opcode size! */
    14091409            STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
    14101410            goto ResumeExecution;
     
    14231423        {
    14241424            /* Update EIP and continue execution. */
    1425             pCtx->eip += 2;             /** @note hardcoded opcode size! */
     1425            pCtx->rip += 2;             /** @note hardcoded opcode size! */
    14261426            STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
    14271427            goto ResumeExecution;
     
    14561456        uint32_t cbSize;
    14571457
    1458         Log2(("SVM: %VGv mov cr%d, \n", pCtx->eip, exitCode - SVM_EXIT_WRITE_CR0));
     1458        Log2(("SVM: %VGv mov cr%d, \n", pCtx->rip, exitCode - SVM_EXIT_WRITE_CR0));
    14591459        STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitCRxWrite);
    14601460        rc = EMInterpretInstruction(pVM, CPUMCTX2CORE(pCtx), 0, &cbSize);
     
    15081508        uint32_t cbSize;
    15091509
    1510         Log2(("SVM: %VGv mov x, cr%d\n", pCtx->eip, exitCode - SVM_EXIT_READ_CR0));
     1510        Log2(("SVM: %VGv mov x, cr%d\n", pCtx->rip, exitCode - SVM_EXIT_READ_CR0));
    15111511        STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitCRxRead);
    15121512        rc = EMInterpretInstruction(pVM, CPUMCTX2CORE(pCtx), 0, &cbSize);
     
    15301530        uint32_t cbSize;
    15311531
    1532         Log2(("SVM: %VGv mov dr%d, x\n", pCtx->eip, exitCode - SVM_EXIT_WRITE_DR0));
     1532        Log2(("SVM: %VGv mov dr%d, x\n", pCtx->rip, exitCode - SVM_EXIT_WRITE_DR0));
    15331533        STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitDRxRead);
    15341534        rc = EMInterpretInstruction(pVM, CPUMCTX2CORE(pCtx), 0, &cbSize);
     
    15521552        uint32_t cbSize;
    15531553
    1554         Log2(("SVM: %VGv mov dr%d, x\n", pCtx->eip, exitCode - SVM_EXIT_READ_DR0));
     1554        Log2(("SVM: %VGv mov dr%d, x\n", pCtx->rip, exitCode - SVM_EXIT_READ_DR0));
    15551555        STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitDRxRead);
    15561556        rc = EMInterpretInstruction(pVM, CPUMCTX2CORE(pCtx), 0, &cbSize);
     
    16091609            if (IoExitInfo.n.u1Type == 0)
    16101610            {
    1611                 Log2(("IOMInterpretOUTSEx %VGv %x size=%d\n", pCtx->eip, IoExitInfo.n.u16Port, uIOSize));
     1611                Log2(("IOMInterpretOUTSEx %VGv %x size=%d\n", pCtx->rip, IoExitInfo.n.u16Port, uIOSize));
    16121612                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitIOStringWrite);
    16131613                rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, prefix, uIOSize);
     
    16151615            else
    16161616            {
    1617                 Log2(("IOMInterpretINSEx  %VGv %x size=%d\n", pCtx->eip, IoExitInfo.n.u16Port, uIOSize));
     1617                Log2(("IOMInterpretINSEx  %VGv %x size=%d\n", pCtx->rip, IoExitInfo.n.u16Port, uIOSize));
    16181618                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitIOStringRead);
    16191619                rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, prefix, uIOSize);
     
    16271627            if (IoExitInfo.n.u1Type == 0)
    16281628            {
    1629                 Log2(("IOMIOPortWrite %VGv %x %x size=%d\n", pCtx->eip, IoExitInfo.n.u16Port, pCtx->eax & uAndVal, uIOSize));
     1629                Log2(("IOMIOPortWrite %VGv %x %x size=%d\n", pCtx->rip, IoExitInfo.n.u16Port, pCtx->eax & uAndVal, uIOSize));
    16301630                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitIOWrite);
    16311631                rc = IOMIOPortWrite(pVM, IoExitInfo.n.u16Port, pCtx->eax & uAndVal, uIOSize);
     
    16411641                    /* Write back to the EAX register. */
    16421642                    pCtx->eax = (pCtx->eax & ~uAndVal) | (u32Val & uAndVal);
    1643                     Log2(("IOMIOPortRead %VGv %x %x size=%d\n", pCtx->eip, IoExitInfo.n.u16Port, u32Val & uAndVal, uIOSize));
     1643                    Log2(("IOMIOPortRead %VGv %x %x size=%d\n", pCtx->rip, IoExitInfo.n.u16Port, u32Val & uAndVal, uIOSize));
    16441644                }
    16451645            }
     
    16521652        {
    16531653            /* Update EIP and continue execution. */
    1654             pCtx->eip = pVMCB->ctrl.u64ExitInfo2;      /* RIP/EIP of the next instruction is saved in EXITINFO2. */
     1654            pCtx->rip = pVMCB->ctrl.u64ExitInfo2;      /* RIP/EIP of the next instruction is saved in EXITINFO2. */
    16551655            if (RT_LIKELY(rc == VINF_SUCCESS))
    16561656            {
     
    16581658                goto ResumeExecution;
    16591659            }
    1660             Log2(("EM status from IO at %VGv %x size %d: %Vrc\n", pCtx->eip, IoExitInfo.n.u16Port, uIOSize, rc));
     1660            Log2(("EM status from IO at %VGv %x size %d: %Vrc\n", pCtx->rip, IoExitInfo.n.u16Port, uIOSize, rc));
    16611661            break;
    16621662        }
     
    16701670            AssertMsg(VBOX_FAILURE(rc) || rc == VINF_EM_RAW_EMULATE_INSTR || rc == VINF_EM_RAW_GUEST_TRAP || rc == VINF_TRPM_XCPT_DISPATCHED, ("%Vrc\n", rc));
    16711671#endif
    1672         Log2(("Failed IO at %VGv %x size %d\n", pCtx->eip, IoExitInfo.n.u16Port, uIOSize));
     1672        Log2(("Failed IO at %VGv %x size %d\n", pCtx->rip, IoExitInfo.n.u16Port, uIOSize));
    16731673        break;
    16741674    }
     
    16791679            &&  VM_FF_ISPENDING(pVM, (VM_FF_INTERRUPT_APIC|VM_FF_INTERRUPT_PIC)))
    16801680        {
    1681             pCtx->eip++;    /* skip hlt */
     1681            pCtx->rip++;    /* skip hlt */
    16821682            goto ResumeExecution;
    16831683        }
     
    17051705        Event.n.u8Vector = X86_XCPT_UD;
    17061706
    1707         Log(("Forced #UD trap at %VGv\n", pCtx->eip));
     1707        Log(("Forced #UD trap at %VGv\n", pCtx->rip));
    17081708        SVMR0InjectEvent(pVM, pVMCB, pCtx, &Event);
    17091709
     
    18831883    {
    18841884        RTGCPTR pbCode;
    1885         int rc = SELMValidateAndConvertCSAddr(pVM, pRegFrame->eflags, pRegFrame->ss, pRegFrame->cs, &pRegFrame->csHid, (RTGCPTR)pRegFrame->eip, &pbCode);
     1885        int rc = SELMValidateAndConvertCSAddr(pVM, pRegFrame->eflags, pRegFrame->ss, pRegFrame->cs, &pRegFrame->csHid, (RTGCPTR)pRegFrame->rip, &pbCode);
    18861886        if (VBOX_SUCCESS(rc))
    18871887        {
     
    18981898                if (VBOX_SUCCESS(rc))
    18991899                {
    1900                     pRegFrame->eip += cbOp; /* Move on to the next instruction. */
     1900                    pRegFrame->rip += cbOp; /* Move on to the next instruction. */
    19011901                }
    19021902                return rc;
     
    19781978        {
    19791979            RTGCPTR pbCode;
    1980             int rc = SELMValidateAndConvertCSAddr(pVM, pCtx->eflags, pCtx->ss, pCtx->cs, &pCtx->csHid, (RTGCPTR)pCtx->eip, &pbCode);
     1980            int rc = SELMValidateAndConvertCSAddr(pVM, pCtx->eflags, pCtx->ss, pCtx->cs, &pCtx->csHid, (RTGCPTR)pCtx->rip, &pbCode);
    19811981            if (VBOX_SUCCESS(rc))
    19821982            {
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r9535 r9708  
    396396    uint32_t    iGate = VMX_EXIT_INTERRUPTION_INFO_VECTOR(intInfo);
    397397    if (iGate == 0xE)
    398         Log2(("VMXR0InjectEvent: Injecting interrupt %d at %VGv error code=%08x CR2=%08x intInfo=%08x\n", iGate, pCtx->eip, errCode, pCtx->cr2, intInfo));
     398        Log2(("VMXR0InjectEvent: Injecting interrupt %d at %VGv error code=%08x CR2=%08x intInfo=%08x\n", iGate, pCtx->rip, errCode, pCtx->cr2, intInfo));
    399399    else
    400400    if (iGate < 0x20)
    401         Log2(("VMXR0InjectEvent: Injecting interrupt %d at %VGv error code=%08x\n", iGate, pCtx->eip, errCode));
     401        Log2(("VMXR0InjectEvent: Injecting interrupt %d at %VGv error code=%08x\n", iGate, pCtx->rip, errCode));
    402402    else
    403403    {
    404         Log2(("INJ-EI: %x at %VGv\n", iGate, pCtx->eip));
     404        Log2(("INJ-EI: %x at %VGv\n", iGate, pCtx->rip));
    405405        Assert(!VM_FF_ISSET(pVM, VM_FF_INHIBIT_INTERRUPTS));
    406406        Assert(pCtx->eflags.u32 & X86_EFL_IF);
     
    435435    if (pVM->hwaccm.s.Event.fPending)
    436436    {
    437         Log(("Reinjecting event %VX64 %08x at %VGv\n", pVM->hwaccm.s.Event.intInfo, pVM->hwaccm.s.Event.errCode, pCtx->eip));
     437        Log(("Reinjecting event %VX64 %08x at %VGv\n", pVM->hwaccm.s.Event.intInfo, pVM->hwaccm.s.Event.errCode, pCtx->rip));
    438438        STAM_COUNTER_INC(&pVM->hwaccm.s.StatIntReinject);
    439439        rc = VMXR0InjectEvent(pVM, pCtx, pVM->hwaccm.s.Event.intInfo, 0, pVM->hwaccm.s.Event.errCode);
     
    476476        }
    477477        else
    478             Log(("Pending interrupt blocked at %VGv by VM_FF_INHIBIT_INTERRUPTS!!\n", pCtx->eip));
     478            Log(("Pending interrupt blocked at %VGv by VM_FF_INHIBIT_INTERRUPTS!!\n", pCtx->rip));
    479479    }
    480480
     
    10891089    if (VM_FF_ISSET(pVM, VM_FF_INHIBIT_INTERRUPTS))
    10901090    {
    1091         Log(("VM_FF_INHIBIT_INTERRUPTS at %VGv successor %VGv\n", pCtx->eip, EMGetInhibitInterruptsPC(pVM)));
    1092         if (pCtx->eip != EMGetInhibitInterruptsPC(pVM))
     1091        Log(("VM_FF_INHIBIT_INTERRUPTS at %VGv successor %VGv\n", pCtx->rip, EMGetInhibitInterruptsPC(pVM)));
     1092        if (pCtx->rip != EMGetInhibitInterruptsPC(pVM))
    10931093        {
    10941094            /** @note we intentionally don't clear VM_FF_INHIBIT_INTERRUPTS here.
     
    12191219
    12201220            VMXReadVMCS(VMX_VMCS_GUEST_RIP, &val);
    1221             Log(("Old eip %VGv new %VGv\n", pCtx->eip, (RTGCPTR)val));
     1221            Log(("Old eip %VGv new %VGv\n", pCtx->rip, (RTGCPTR)val));
    12221222            VMXReadVMCS(VMX_VMCS_CTRL_PIN_EXEC_CONTROLS, &val);
    12231223            Log(("VMX_VMCS_CTRL_PIN_EXEC_CONTROLS   %08x\n", val));
     
    13691369    {
    13701370        Assert(uInterruptState <= 2);    /* only sti & mov ss */
    1371         Log(("uInterruptState %x eip=%VGv\n", uInterruptState, pCtx->eip));
    1372         EMSetInhibitInterruptsPC(pVM, pCtx->eip);
     1371        Log(("uInterruptState %x eip=%VGv\n", uInterruptState, pCtx->rip));
     1372        EMSetInhibitInterruptsPC(pVM, pCtx->rip);
    13731373    }
    13741374    else
     
    14191419        &&  VMX_EXIT_INTERRUPTION_INFO_TYPE(pVM->hwaccm.s.Event.intInfo) != VMX_EXIT_INTERRUPTION_INFO_TYPE_SW)
    14201420    {
    1421         Log(("Pending inject %VX64 at %08x exit=%08x intInfo=%08x exitQualification=%08x\n", pVM->hwaccm.s.Event.intInfo, pCtx->eip, exitReason, intInfo, exitQualification));
     1421        Log(("Pending inject %VX64 at %VGv exit=%08x intInfo=%08x exitQualification=%08x\n", pVM->hwaccm.s.Event.intInfo, pCtx->rip, exitReason, intInfo, exitQualification));
    14221422        pVM->hwaccm.s.Event.fPending = true;
    14231423        /* Error code present? */
     
    14421442    Log2(("Interruption error code %d\n", errCode));
    14431443    Log2(("IntInfo = %08x\n", intInfo));
    1444     Log2(("New EIP=%VGv\n", pCtx->eip));
     1444    Log2(("New EIP=%VGv\n", pCtx->rip));
    14451445
    14461446    /* Some cases don't need a complete resync of the guest CPU state; handle them here. */
     
    14811481                uint32_t oldCR0;
    14821482
    1483                 Log(("#NM fault at %VGv error code %x\n", pCtx->eip, errCode));
     1483                Log(("#NM fault at %VGv error code %x\n", pCtx->rip, errCode));
    14841484
    14851485                /** @todo don't intercept #NM exceptions anymore when we've activated the guest FPU state. */
     
    15211521                /* Forward it to our trap handler first, in case our shadow pages are out of sync. */
    15221522                rc = PGMTrap0eHandler(pVM, errCode, CPUMCTX2CORE(pCtx), (RTGCPTR)exitQualification);
    1523                 Log2(("PGMTrap0eHandler %VGv returned %Vrc\n", pCtx->eip, rc));
     1523                Log2(("PGMTrap0eHandler %VGv returned %Vrc\n", pCtx->rip, rc));
    15241524                if (rc == VINF_SUCCESS)
    15251525                {   /* We've successfully synced our shadow pages, so let's just continue execution. */
    1526                     Log2(("Shadow page fault at %VGv cr2=%VGv error code %x\n", pCtx->eip, exitQualification ,errCode));
     1526                    Log2(("Shadow page fault at %VGv cr2=%VGv error code %x\n", pCtx->rip, exitQualification ,errCode));
    15271527                    STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitShadowPF);
    15281528
     
    15711571                    break;
    15721572                }
    1573                 Log(("Trap %x at %VGv\n", vector, pCtx->eip));
     1573                Log(("Trap %x at %VGv\n", vector, pCtx->rip));
    15741574                rc = VMXR0InjectEvent(pVM, pCtx, VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(intInfo), cbInstr, errCode);
    15751575                AssertRC(rc);
     
    16051605                }
    16061606
    1607                 Log(("Trap %x at %VGv\n", vector, pCtx->eip));
     1607                Log(("Trap %x at %VGv\n", vector, pCtx->rip));
    16081608                rc = VMXR0InjectEvent(pVM, pCtx, VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(intInfo), cbInstr, errCode);
    16091609                AssertRC(rc);
     
    16321632    case VMX_EXIT_IRQ_WINDOW:           /* 7 Interrupt window. */
    16331633        /* Clear VM-exit on IF=1 change. */
    1634         Log2(("VMX_EXIT_IRQ_WINDOW %VGv\n", pCtx->eip));
     1634        Log2(("VMX_EXIT_IRQ_WINDOW %VGv\n", pCtx->rip));
    16351635        pVM->hwaccm.s.vmx.proc_ctls &= ~VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_IRQ_WINDOW_EXIT;
    16361636        rc = VMXWriteVMCS(VMX_VMCS_CTRL_PROC_EXEC_CONTROLS, pVM->hwaccm.s.vmx.proc_ctls);
     
    16421642        STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitInvd);
    16431643        /* Skip instruction and continue directly. */
    1644         pCtx->eip += cbInstr;
     1644        pCtx->rip += cbInstr;
    16451645        /* Continue execution.*/
    16461646        STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
     
    16561656            /* Update EIP and continue execution. */
    16571657            Assert(cbInstr == 2);
    1658             pCtx->eip += cbInstr;
     1658            pCtx->rip += cbInstr;
    16591659            STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
    16601660            goto ResumeExecution;
     
    16741674            /* Update EIP and continue execution. */
    16751675            Assert(cbInstr == 2);
    1676             pCtx->eip += cbInstr;
     1676            pCtx->rip += cbInstr;
    16771677            STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
    16781678            goto ResumeExecution;
     
    16911691        {
    16921692            /* Update EIP and continue execution. */
    1693             pCtx->eip += cbInstr;
     1693            pCtx->rip += cbInstr;
    16941694            STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
    16951695            goto ResumeExecution;
     
    17041704        {
    17051705        case VMX_EXIT_QUALIFICATION_CRX_ACCESS_WRITE:
    1706             Log2(("VMX: %VGv mov cr%d, x\n", pCtx->eip, VMX_EXIT_QUALIFICATION_CRX_REGISTER(exitQualification)));
     1706            Log2(("VMX: %VGv mov cr%d, x\n", pCtx->rip, VMX_EXIT_QUALIFICATION_CRX_REGISTER(exitQualification)));
    17071707            STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitCRxWrite);
    17081708            rc = EMInterpretCRxWrite(pVM, CPUMCTX2CORE(pCtx),
     
    17601760        /* Update EIP if no error occurred. */
    17611761        if (VBOX_SUCCESS(rc))
    1762             pCtx->eip += cbInstr;
     1762            pCtx->rip += cbInstr;
    17631763
    17641764        if (rc == VINF_SUCCESS)
     
    17941794        /* Update EIP if no error occurred. */
    17951795        if (VBOX_SUCCESS(rc))
    1796             pCtx->eip += cbInstr;
     1796            pCtx->rip += cbInstr;
    17971797
    17981798        if (rc == VINF_SUCCESS)
     
    18391839            if (fIOWrite)
    18401840            {
    1841                 Log2(("IOMInterpretOUTSEx %VGv %x size=%d\n", pCtx->eip, uPort, cbSize));
     1841                Log2(("IOMInterpretOUTSEx %VGv %x size=%d\n", pCtx->rip, uPort, cbSize));
    18421842                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitIOStringWrite);
    18431843                rc = IOMInterpretOUTSEx(pVM, CPUMCTX2CORE(pCtx), uPort, prefix, cbSize);
     
    18451845            else
    18461846            {
    1847                 Log2(("IOMInterpretINSEx  %VGv %x size=%d\n", pCtx->eip, uPort, cbSize));
     1847                Log2(("IOMInterpretINSEx  %VGv %x size=%d\n", pCtx->rip, uPort, cbSize));
    18481848                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitIOStringRead);
    18491849                rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), uPort, prefix, cbSize);
     
    18821882        {
    18831883            /* Update EIP and continue execution. */
    1884             pCtx->eip += cbInstr;
     1884            pCtx->rip += cbInstr;
    18851885            if (RT_LIKELY(rc == VINF_SUCCESS))
    18861886            {
     
    19421942            &&  VM_FF_ISPENDING(pVM, (VM_FF_INTERRUPT_APIC|VM_FF_INTERRUPT_PIC)))
    19431943        {
    1944             pCtx->eip++;    /* skip hlt */
     1944            pCtx->rip++;    /* skip hlt */
    19451945            goto ResumeExecution;
    19461946        }
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