Changeset 65475 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jan 27, 2017 5:42:24 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r65474 r65475 12171 12171 * We've already saved the APIC related guest-state (TPR) in hmR0VmxPostRunGuest(). When full APIC register 12172 12172 * virtualization is implemented we'll have to make sure APIC state is saved from the VMCS before 12173 * 12173 * EMInterpretWrmsr() changes it. 12174 12174 */ 12175 12175 HMCPU_CF_SET(pVCpu, HM_CHANGED_VMX_GUEST_APIC_STATE); … … 12439 12439 STAM_PROFILE_ADV_START(&pVCpu->hm.s.StatExitIO, y1); 12440 12440 12441 int rc 2= hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient);12442 rc 2|= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);12443 rc 2|= hmR0VmxSaveGuestRip(pVCpu, pMixedCtx);12444 rc 2|= hmR0VmxSaveGuestRflags(pVCpu, pMixedCtx); /* Eflag checks in EMInterpretDisasCurrent(). */12445 rc 2|= hmR0VmxSaveGuestControlRegs(pVCpu, pMixedCtx); /* CR0 checks & PGM* in EMInterpretDisasCurrent(). */12446 rc 2|= hmR0VmxSaveGuestSegmentRegs(pVCpu, pMixedCtx); /* SELM checks in EMInterpretDisasCurrent(). */12441 int rc = hmR0VmxReadExitQualificationVmcs(pVCpu, pVmxTransient); 12442 rc |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient); 12443 rc |= hmR0VmxSaveGuestRip(pVCpu, pMixedCtx); 12444 rc |= hmR0VmxSaveGuestRflags(pVCpu, pMixedCtx); /* Eflag checks in EMInterpretDisasCurrent(). */ 12445 rc |= hmR0VmxSaveGuestControlRegs(pVCpu, pMixedCtx); /* CR0 checks & PGM* in EMInterpretDisasCurrent(). */ 12446 rc |= hmR0VmxSaveGuestSegmentRegs(pVCpu, pMixedCtx); /* SELM checks in EMInterpretDisasCurrent(). */ 12447 12447 /* EFER also required for longmode checks in EMInterpretDisasCurrent(), but it's always up-to-date. */ 12448 AssertRCReturn(rc 2, rc2);12448 AssertRCReturn(rc, rc); 12449 12449 12450 12450 /* Refer Intel spec. 27-5. "Exit Qualifications for I/O Instructions" for the format. */ … … 12482 12482 if (MSR_IA32_VMX_BASIC_INFO_VMCS_INS_OUTS(pVM->hm.s.vmx.Msrs.u64BasicInfo)) 12483 12483 { 12484 rc2 = hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);12484 int rc2 = hmR0VmxReadExitInstrInfoVmcs(pVmxTransient); 12485 12485 /** @todo optimize this, IEM should request the additional state if it needs it (GP, PF, ++). */ 12486 12486 rc2 |= hmR0VmxSaveGuestState(pVCpu, pMixedCtx); … … 12509 12509 { 12510 12510 /** @todo optimize this, IEM should request the additional state if it needs it (GP, PF, ++). */ 12511 rc2 = hmR0VmxSaveGuestState(pVCpu, pMixedCtx);12511 int rc2 = hmR0VmxSaveGuestState(pVCpu, pMixedCtx); 12512 12512 AssertRCReturn(rc2, rc2); 12513 12513 rcStrict = IEMExecOne(pVCpu); … … 12598 12598 * Note that the I/O breakpoint type is undefined if CR4.DE is 0. 12599 12599 */ 12600 rc2 = hmR0VmxSaveGuestDR7(pVCpu, pMixedCtx);12600 int rc2 = hmR0VmxSaveGuestDR7(pVCpu, pMixedCtx); 12601 12601 AssertRCReturn(rc2, rc2); 12602 12602
Note:
See TracChangeset
for help on using the changeset viewer.