Changeset 78920 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jun 3, 2019 7:47:17 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 131040
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r78877 r78920 14048 14048 && CPUMIsGuestInVmxNonRootMode(IEM_GET_CTX(pVCpu))) 14049 14049 { 14050 bool fCheckRemainingIntercepts = true; 14050 14051 /* TPR-below threshold/APIC write has the highest priority. */ 14051 14052 if (VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_VMX_APIC_WRITE)) 14052 14053 { 14053 14054 rcStrict = iemVmxApicWriteEmulation(pVCpu); 14055 fCheckRemainingIntercepts = false; 14054 14056 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS)); 14055 14057 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_VMX_APIC_WRITE)); … … 14059 14061 { 14060 14062 rcStrict = iemVmxVmexit(pVCpu, VMX_EXIT_MTF); 14063 fCheckRemainingIntercepts = false; 14061 14064 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS)); 14062 14065 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_VMX_MTF)); … … 14070 14073 else 14071 14074 { 14075 fCheckRemainingIntercepts = false; 14072 14076 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS)); 14073 14077 Assert(!VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_VMX_PREEMPT_TIMER)); 14074 14078 } 14075 14079 } 14080 14076 14081 /* NMI-window VM-exit. */ 14077 else if (VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_VMX_NMI_WINDOW)) 14082 if ( fCheckRemainingIntercepts 14083 && pVCpu->cpum.GstCtx.hwvirt.vmx.fInterceptEvents /* Event injection during VM-entry takes priority. */ 14084 && VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_VMX_NMI_WINDOW) 14085 && !VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS) 14086 && !CPUMIsGuestNmiBlocking(pVCpu)) 14078 14087 { 14079 14088 rcStrict = iemVmxVmexit(pVCpu, VMX_EXIT_NMI_WINDOW); … … 14393 14402 bool fIntrEnabled = pVCpu->cpum.GstCtx.eflags.Bits.u1IF; 14394 14403 #endif 14404 14405 /** @todo What if we are injecting an exception and not an interrupt? Is that 14406 * possible here? */ 14395 14407 if ( fIntrEnabled 14396 14408 && TRPMHasTrap(pVCpu)
Note:
See TracChangeset
for help on using the changeset viewer.