VirtualBox

Ignore:
Timestamp:
Jul 8, 2018 5:56:09 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HM: Spaces.

File:
1 edited

Legend:

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

    r72929 r72963  
    23082308
    23092309    fVal |= VMX_VMCS_CTRL_PIN_EXEC_EXT_INT_EXIT              /* External interrupts cause a VM-exit. */
    2310          | VMX_VMCS_CTRL_PIN_EXEC_NMI_EXIT;                 /* Non-maskable interrupts (NMIs) cause a VM-exit. */
     2310          | VMX_VMCS_CTRL_PIN_EXEC_NMI_EXIT;                 /* Non-maskable interrupts (NMIs) cause a VM-exit. */
    23112311
    23122312    if (pVM->hm.s.vmx.Msrs.VmxPinCtls.n.allowed1 & VMX_VMCS_CTRL_PIN_EXEC_VIRTUAL_NMI)
     
    24602460
    24612461    fVal |= VMX_VMCS_CTRL_PROC_EXEC_HLT_EXIT                      /* HLT causes a VM-exit. */
    2462          | VMX_VMCS_CTRL_PROC_EXEC_USE_TSC_OFFSETTING            /* Use TSC-offsetting. */
    2463          | VMX_VMCS_CTRL_PROC_EXEC_MOV_DR_EXIT                   /* MOV DRx causes a VM-exit. */
    2464          | VMX_VMCS_CTRL_PROC_EXEC_UNCOND_IO_EXIT                /* All IO instructions cause a VM-exit. */
    2465          | VMX_VMCS_CTRL_PROC_EXEC_RDPMC_EXIT                    /* RDPMC causes a VM-exit. */
    2466          | VMX_VMCS_CTRL_PROC_EXEC_MONITOR_EXIT                  /* MONITOR causes a VM-exit. */
    2467          | VMX_VMCS_CTRL_PROC_EXEC_MWAIT_EXIT;                   /* MWAIT causes a VM-exit. */
     2462          | VMX_VMCS_CTRL_PROC_EXEC_USE_TSC_OFFSETTING            /* Use TSC-offsetting. */
     2463          | VMX_VMCS_CTRL_PROC_EXEC_MOV_DR_EXIT                   /* MOV DRx causes a VM-exit. */
     2464          | VMX_VMCS_CTRL_PROC_EXEC_UNCOND_IO_EXIT                /* All IO instructions cause a VM-exit. */
     2465          | VMX_VMCS_CTRL_PROC_EXEC_RDPMC_EXIT                    /* RDPMC causes a VM-exit. */
     2466          | VMX_VMCS_CTRL_PROC_EXEC_MONITOR_EXIT                  /* MONITOR causes a VM-exit. */
     2467          | VMX_VMCS_CTRL_PROC_EXEC_MWAIT_EXIT;                   /* MWAIT causes a VM-exit. */
    24682468
    24692469    /* We toggle VMX_VMCS_CTRL_PROC_EXEC_MOV_DR_EXIT later, check if it's not -always- needed to be set or clear. */
     
    24812481        Assert(!pVM->hm.s.vmx.fUnrestrictedGuest);                /* Paranoia. */
    24822482        fVal |= VMX_VMCS_CTRL_PROC_EXEC_INVLPG_EXIT
    2483              | VMX_VMCS_CTRL_PROC_EXEC_CR3_LOAD_EXIT
    2484              | VMX_VMCS_CTRL_PROC_EXEC_CR3_STORE_EXIT;
     2483              | VMX_VMCS_CTRL_PROC_EXEC_CR3_LOAD_EXIT
     2484              | VMX_VMCS_CTRL_PROC_EXEC_CR3_STORE_EXIT;
    24852485    }
    24862486
     
    25092509        {
    25102510            fVal |= VMX_VMCS_CTRL_PROC_EXEC_CR8_STORE_EXIT        /* CR8 reads cause a VM-exit. */
    2511                  | VMX_VMCS_CTRL_PROC_EXEC_CR8_LOAD_EXIT;        /* CR8 writes cause a VM-exit. */
     2511                  | VMX_VMCS_CTRL_PROC_EXEC_CR8_LOAD_EXIT;        /* CR8 writes cause a VM-exit. */
    25122512        }
    25132513    }
     
    33493349        {
    33503350            fVal |= VMX_VMCS_CTRL_EXIT_SAVE_GUEST_EFER_MSR
    3351                  | VMX_VMCS_CTRL_EXIT_LOAD_HOST_EFER_MSR;
     3351                  | VMX_VMCS_CTRL_EXIT_LOAD_HOST_EFER_MSR;
    33523352            Log4Func(("VMX_VMCS_CTRL_EXIT_SAVE_GUEST_EFER_MSR and VMX_VMCS_CTRL_EXIT_LOAD_HOST_EFER_MSR\n"));
    33533353        }
     
    37203720                /* The guest doesn't have paging enabled, make CR3 access cause a VM-exit to update our shadow. */
    37213721                uProcCtls |= VMX_VMCS_CTRL_PROC_EXEC_CR3_LOAD_EXIT
    3722                           | VMX_VMCS_CTRL_PROC_EXEC_CR3_STORE_EXIT;
     3722                           | VMX_VMCS_CTRL_PROC_EXEC_CR3_STORE_EXIT;
    37233723            }
    37243724
     
    37683768#ifdef HMVMX_ALWAYS_TRAP_ALL_XCPTS
    37693769        uXcptBitmap |= 0
    3770                     | RT_BIT(X86_XCPT_BP)
    3771                     | RT_BIT(X86_XCPT_DE)
    3772                     | RT_BIT(X86_XCPT_NM)
    3773                     | RT_BIT(X86_XCPT_TS)
    3774                     | RT_BIT(X86_XCPT_UD)
    3775                     | RT_BIT(X86_XCPT_NP)
    3776                     | RT_BIT(X86_XCPT_SS)
    3777                     | RT_BIT(X86_XCPT_GP)
    3778                     | RT_BIT(X86_XCPT_PF)
    3779                     | RT_BIT(X86_XCPT_MF)
    3780                     ;
     3770                     | RT_BIT(X86_XCPT_BP)
     3771                     | RT_BIT(X86_XCPT_DE)
     3772                     | RT_BIT(X86_XCPT_NM)
     3773                     | RT_BIT(X86_XCPT_TS)
     3774                     | RT_BIT(X86_XCPT_UD)
     3775                     | RT_BIT(X86_XCPT_NP)
     3776                     | RT_BIT(X86_XCPT_SS)
     3777                     | RT_BIT(X86_XCPT_GP)
     3778                     | RT_BIT(X86_XCPT_PF)
     3779                     | RT_BIT(X86_XCPT_MF)
     3780                     ;
    37813781#elif defined(HMVMX_ALWAYS_TRAP_PF)
    37823782        uXcptBitmap |= RT_BIT(X86_XCPT_PF);
     
    38903890
    38913891            /* VMX_EPT_MEMTYPE_WB support is already checked in hmR0VmxSetupTaggedTlb(). */
    3892             pVCpu->hm.s.vmx.HCPhysEPTP |=   VMX_EPT_MEMTYPE_WB
    3893                                           | (VMX_EPT_PAGE_WALK_LENGTH_DEFAULT << VMX_EPT_PAGE_WALK_LENGTH_SHIFT);
     3892            pVCpu->hm.s.vmx.HCPhysEPTP |= VMX_EPT_MEMTYPE_WB
     3893                                        | (VMX_EPT_PAGE_WALK_LENGTH_DEFAULT << VMX_EPT_PAGE_WALK_LENGTH_SHIFT);
    38943894
    38953895            /* Validate. See Intel spec. 26.2.1 "Checks on VMX Controls" */
     
    49704970                pVCpu->hm.s.vmx.fSwitchedTo64on32 = false;
    49714971                pVCpu->hm.s.vmx.pfnStartVM = VMXR0StartVM32;
    4972                 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_EFER_MSR
    4973                                                            | HM_CHANGED_VMX_ENTRY_CTLS
    4974                                                            | HM_CHANGED_VMX_EXIT_CTLS
    4975                                                            | HM_CHANGED_HOST_CONTEXT);
     4972                ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_EFER_MSR
     4973                                                         | HM_CHANGED_VMX_ENTRY_CTLS
     4974                                                         | HM_CHANGED_VMX_EXIT_CTLS
     4975                                                         | HM_CHANGED_HOST_CONTEXT);
    49764976                Log4Func(("Selected 32-bit switcher (safe)\n"));
    49774977            }
     
    68946894        if (!fImportState)
    68956895        {
    6896             int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_KERNEL_GS_BASE
    6897                                                     | CPUMCTX_EXTRN_SYSCALL_MSRS);
     6896            int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_KERNEL_GS_BASE | CPUMCTX_EXTRN_SYSCALL_MSRS);
    68986897            AssertRCReturn(rc, rc);
    68996898        }
     
    70627061    /* Sync recompiler state. */
    70637062    VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TO_R3);
    7064     CPUMSetChangedFlags(pVCpu,  CPUM_CHANGED_SYSENTER_MSR
    7065                               | CPUM_CHANGED_LDTR
    7066                               | CPUM_CHANGED_GDTR
    7067                               | CPUM_CHANGED_IDTR
    7068                               | CPUM_CHANGED_TR
    7069                               | CPUM_CHANGED_HIDDEN_SEL_REGS);
     7063    CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_SYSENTER_MSR
     7064                             | CPUM_CHANGED_LDTR
     7065                             | CPUM_CHANGED_GDTR
     7066                             | CPUM_CHANGED_IDTR
     7067                             | CPUM_CHANGED_TR
     7068                             | CPUM_CHANGED_HIDDEN_SEL_REGS);
    70707069    if (   pVCpu->CTX_SUFF(pVM)->hm.s.fNestedPaging
    70717070        && CPUMIsGuestPagingEnabledEx(pMixedCtx))
     
    77537752
    77547753            /* We require RIP, RSP, RFLAGS, CS, IDTR, import them. */
    7755             int rc2 = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_SREG_MASK
    7756                                                      | CPUMCTX_EXTRN_TABLE_MASK
    7757                                                      | CPUMCTX_EXTRN_RIP
    7758                                                      | CPUMCTX_EXTRN_RSP
    7759                                                      | CPUMCTX_EXTRN_RFLAGS);
     7754            int rc2 = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_TABLE_MASK | CPUMCTX_EXTRN_RIP
     7755                                                   | CPUMCTX_EXTRN_RSP       | CPUMCTX_EXTRN_RFLAGS);
    77607756            AssertRCReturn(rc2, rc2);
    77617757
     
    78217817                /* If any other guest-state bits are changed here, make sure to update
    78227818                   hmR0VmxPreRunGuestCommitted() when thread-context hooks are used. */
    7823                 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_CS
    7824                                                            | HM_CHANGED_GUEST_CR2
    7825                                                            | HM_CHANGED_GUEST_RIP
    7826                                                            | HM_CHANGED_GUEST_RFLAGS
    7827                                                            | HM_CHANGED_GUEST_RSP);
     7819                ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_CS     | HM_CHANGED_GUEST_CR2
     7820                                                         | HM_CHANGED_GUEST_RIP    | HM_CHANGED_GUEST_RFLAGS
     7821                                                         | HM_CHANGED_GUEST_RSP);
    78287822
    78297823                /* We're clearing interrupts, which means no block-by-STI interrupt-inhibition. */
     
    92039197        || IS_EITHER_ENABLED(pVM, INSTR_CRX_WRITE))
    92049198    {
    9205         int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_CR0
    9206                                                | CPUMCTX_EXTRN_CR4
    9207                                                | CPUMCTX_EXTRN_APIC_TPR);
     9199        int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_APIC_TPR);
    92089200        AssertRC(rc);
    92099201
     
    98309822            case VMX_EXIT_XRSTORS:
    98319823            {
    9832                 int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_RIP
    9833                                                         | CPUMCTX_EXTRN_CS);
     9824                int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CS | CPUMCTX_EXTRN_RIP);
    98349825                AssertRCReturn(rc, rc);
    98359826                if (   pMixedCtx->rip    != pDbgState->uRipStart
     
    99789969        if (fStepping)
    99799970        {
    9980             int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_RIP
    9981                                                     | CPUMCTX_EXTRN_CS);
     9971            int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CS | CPUMCTX_EXTRN_RIP);
    99829972            AssertRC(rc);
    99839973            if (   pCtx->rip    != DbgState.uRipStart
     
    1037810368{
    1037910369    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    10380     rc    |= hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_RIP
    10381                                             | CPUMCTX_EXTRN_RFLAGS);
     10370    rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RIP | CPUMCTX_EXTRN_RFLAGS);
    1038210371    AssertRCReturn(rc, rc);
    1038310372
     
    1134011329{
    1134111330    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    11342     int rc = hmR0VmxImportGuestState(pVCpu,   IEM_CPUMCTX_EXTRN_MUST_MASK
    11343                                             | CPUMCTX_EXTRN_TSC_AUX);
     11331    int rc = hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_TSC_AUX);
    1134411332    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    1134511333    AssertRCReturn(rc, rc);
     
    1137011358{
    1137111359    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    11372     int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_CR4
    11373                                             | CPUMCTX_EXTRN_CR0
    11374                                             | CPUMCTX_EXTRN_RFLAGS
    11375                                             | CPUMCTX_EXTRN_SS);
     11360    int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
    1137611361    AssertRCReturn(rc, rc);
    1137711362
     
    1140211387    if (EMAreHypercallInstructionsEnabled(pVCpu))
    1140311388    {
    11404         int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_RIP
    11405                                                 | CPUMCTX_EXTRN_RFLAGS
    11406                                                 | CPUMCTX_EXTRN_CR0
    11407                                                 | CPUMCTX_EXTRN_SS
    11408                                                 | CPUMCTX_EXTRN_CS
    11409                                                 | CPUMCTX_EXTRN_EFER);
     11389        int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RIP | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_SS
     11390                                              | CPUMCTX_EXTRN_CS  | CPUMCTX_EXTRN_EFER);
    1141011391        AssertRCReturn(rc, rc);
    1141111392
     
    1147411455{
    1147511456    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    11476     int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_CR0
    11477                                             | CPUMCTX_EXTRN_RFLAGS
    11478                                             | CPUMCTX_EXTRN_SS);
     11457    int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
    1147911458    AssertRCReturn(rc, rc);
    1148011459
     
    1149911478{
    1150011479    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS();
    11501     int rc = hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_CR0
    11502                                             | CPUMCTX_EXTRN_RFLAGS
    11503                                             | CPUMCTX_EXTRN_SS);
     11480    int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
    1150411481    AssertRCReturn(rc, rc);
    1150511482
     
    1168611663
    1168711664    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    11688     rc    |= hmR0VmxImportGuestState(pVCpu,   IEM_CPUMCTX_EXTRN_MUST_MASK
    11689                                             | CPUMCTX_EXTRN_CR4);
     11665    rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_CR4);
    1169011666    AssertRCReturn(rc, rc);
    1169111667
     
    1193911915             * the other bits as well, SCE and NXE. See @bugref{7368}.
    1194011916             */
    11941             ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_EFER_MSR
    11942                                                        | HM_CHANGED_VMX_ENTRY_CTLS
    11943                                                        | HM_CHANGED_VMX_EXIT_CTLS);
     11917            ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_EFER_MSR | HM_CHANGED_VMX_ENTRY_CTLS
     11918                                                     | HM_CHANGED_VMX_EXIT_CTLS);
    1194411919        }
    1194511920
     
    1223612211    int rc = hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient);
    1223712212    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    12238     rc    |= hmR0VmxImportGuestState(pVCpu,   IEM_CPUMCTX_EXTRN_MUST_MASK
    12239                                             | CPUMCTX_EXTRN_SREG_MASK
    12240                                             | CPUMCTX_EXTRN_EFER);
     12213    rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_EFER);
    1224112214    /* EFER also required for longmode checks in EMInterpretDisasCurrent(), but it's always up-to-date. */
    1224212215    AssertRCReturn(rc, rc);
     
    1259112564                || rcStrict2 == VERR_PAGE_NOT_PRESENT)
    1259212565            {
    12593                 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_RIP
    12594                                                            | HM_CHANGED_GUEST_RSP
    12595                                                            | HM_CHANGED_GUEST_RFLAGS
    12596                                                            | HM_CHANGED_GUEST_APIC_TPR);
     12566                ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RSP | HM_CHANGED_GUEST_RFLAGS
     12567                                                         | HM_CHANGED_GUEST_APIC_TPR);
    1259712568                rcStrict2 = VINF_SUCCESS;
    1259812569            }
     
    1266612637     */
    1266712638    int rc = hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient);
    12668     rc    |= hmR0VmxImportGuestState(pVCpu,   CPUMCTX_EXTRN_SREG_MASK
    12669                                             | CPUMCTX_EXTRN_DR7);
     12639    rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_DR7);
    1267012640    AssertRCReturn(rc, rc);
    1267112641    Log4Func(("CS:RIP=%04x:%08RX64\n", pMixedCtx->cs.Sel, pMixedCtx->rip));
     
    1275712727        {
    1275812728            /* Successfully handled MMIO operation. */
    12759             ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_RIP
    12760                                                        | HM_CHANGED_GUEST_RSP
    12761                                                        | HM_CHANGED_GUEST_RFLAGS
    12762                                                        | HM_CHANGED_GUEST_APIC_TPR);
     12729            ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RSP | HM_CHANGED_GUEST_RFLAGS
     12730                                                     | HM_CHANGED_GUEST_APIC_TPR);
    1276312731            rcStrict = VINF_SUCCESS;
    1276412732        }
     
    1284512813        /* Successfully synced our nested page tables. */
    1284612814        STAM_COUNTER_INC(&pVCpu->hm.s.StatExitReasonNpf);
    12847         ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_RIP
    12848                                                    | HM_CHANGED_GUEST_RSP
    12849                                                    | HM_CHANGED_GUEST_RFLAGS);
     12815        ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RSP | HM_CHANGED_GUEST_RFLAGS);
    1285012816        return VINF_SUCCESS;
    1285112817    }
     
    1316613132                pMixedCtx->esp &= uMask;
    1316713133                pMixedCtx->rip += pDis->cbInstr;
    13168                 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_RIP
    13169                                                            | HM_CHANGED_GUEST_RSP
    13170                                                            | HM_CHANGED_GUEST_RFLAGS);
     13134                ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RSP | HM_CHANGED_GUEST_RFLAGS);
    1317113135                /* Generate a pending-debug exception when the guest stepping over POPF regardless of how
    1317213136                   POPF restores EFLAGS.TF. */
     
    1322213186                pMixedCtx->rip += pDis->cbInstr;
    1322313187                pMixedCtx->eflags.Bits.u1RF = 0;
    13224                 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_RIP
    13225                                                            | HM_CHANGED_GUEST_RSP
    13226                                                            | HM_CHANGED_GUEST_RFLAGS);
     13188                ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RSP | HM_CHANGED_GUEST_RFLAGS);
    1322713189                if (  !fDbgStepping
    1322813190                    && pMixedCtx->eflags.Bits.u1TF)
     
    1326913231                                              | (aIretFrame[2] & X86_EFL_POPF_BITS & uMask);
    1327013232                pMixedCtx->sp                += sizeof(aIretFrame);
    13271                 ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged,   HM_CHANGED_GUEST_RIP
    13272                                                            | HM_CHANGED_GUEST_CS
    13273                                                            | HM_CHANGED_GUEST_RSP
    13274                                                            | HM_CHANGED_GUEST_RFLAGS);
     13233                ASMAtomicUoOrU64(&pVCpu->hm.s.fCtxChanged, HM_CHANGED_GUEST_RIP | HM_CHANGED_GUEST_RSP | HM_CHANGED_GUEST_RFLAGS
     13234                                                         | HM_CHANGED_GUEST_CS);
    1327513235                /* Generate a pending-debug exception when stepping over IRET regardless of how IRET modifies EFLAGS.TF. */
    1327613236                if (   !fDbgStepping
     
    1335813318
    1335913319#ifdef DEBUG_ramshankar
    13360     rc |= hmR0VmxImportGuestState(pVCpu,  CPUMCTX_EXTRN_CS
    13361                                         | CPUMCTX_EXTRN_RIP);
     13320    rc |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CS | CPUMCTX_EXTRN_RIP);
    1336213321    uint8_t uVector = VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVmxTransient->uExitIntInfo);
    1336313322    Log(("hmR0VmxExitXcptGeneric: Reinjecting Xcpt. uVector=%#x cs:rip=%#04x:%#RX64\n", uVector, pCtx->cs.Sel, pCtx->rip));
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