Changeset 75680 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Nov 23, 2018 5:50:33 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h
r75671 r75680 3843 3843 IEM_CIMPL_DEF_1(iemCImpl_iret, IEMMODE, enmEffOpSize) 3844 3844 { 3845 /*3846 * First, clear NMI blocking, if any, before causing any exceptions.3847 * See Intel spec. 6.7.1 "Handling Multiple NMIs".3848 */3849 3845 bool const fBlockingNmi = VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_BLOCK_NMIS); 3850 if (fBlockingNmi)3851 VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_BLOCK_NMIS);3852 3846 3853 3847 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX … … 3863 3857 3864 3858 /* 3865 * The SVM nested-guest intercept for iret takes priority over all exceptions, 3866 * see AMD spec. "15.9 Instruction Intercepts". 3859 * The SVM nested-guest intercept for IRET takes priority over all exceptions, 3860 * The NMI is still held pending (which I assume means blocking of further NMIs 3861 * is in effect). 3862 * 3863 * See AMD spec. 15.9 "Instruction Intercepts". 3864 * See AMD spec. 15.21.9 "NMI Support". 3867 3865 */ 3868 3866 if (IEM_SVM_IS_CTRL_INTERCEPT_SET(pVCpu, SVM_CTRL_INTERCEPT_IRET)) … … 3872 3870 IEM_SVM_VMEXIT_RET(pVCpu, SVM_EXIT_IRET, 0 /* uExitInfo1 */, 0 /* uExitInfo2 */); 3873 3871 } 3872 3873 /* 3874 * Clear NMI blocking, if any, before causing any further exceptions. 3875 * See Intel spec. 6.7.1 "Handling Multiple NMIs". 3876 */ 3877 if (fBlockingNmi) 3878 VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_BLOCK_NMIS); 3874 3879 3875 3880 /*
Note:
See TracChangeset
for help on using the changeset viewer.