Changeset 55040 in vbox for trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
- Timestamp:
- Mar 31, 2015 3:15:37 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r55039 r55040 5002 5002 int rc = hmR0SvmEmulateMovTpr(pVCpu->CTX_SUFF(pVM), pVCpu, pCtx); 5003 5003 if (rc == VINF_SUCCESS) 5004 { 5004 5005 HMSVM_CHECK_SINGLE_STEP(pVCpu, rc); 5006 return VINF_SUCCESS; 5007 } 5005 5008 else if (rc == VERR_NOT_FOUND) 5006 5009 { 5007 5010 /* Handle GIM provider hypercalls. */ 5008 rc = VERR_NOT_SUPPORTED;5009 5011 if (GIMAreHypercallsEnabled(pVCpu)) 5012 { 5010 5013 rc = GIMHypercall(pVCpu, pCtx); 5011 5012 /* If the hypercall changes anything other than guest general-purpose registers, 5013 we would need to reload the guest changed bits on VM-reentry. */ 5014 } 5015 5016 if (RT_SUCCESS(rc)) 5017 hmR0SvmUpdateRip(pVCpu, pCtx, 3); 5018 else 5019 hmR0SvmSetPendingXcptUD(pVCpu); 5014 /* If the hypercall changes anything other than guest general-purpose registers, 5015 we would need to reload the guest changed bits on VM-reentry. */ 5016 if (RT_SUCCESS(rc)) 5017 { 5018 hmR0SvmUpdateRip(pVCpu, pCtx, 3); 5019 return VINF_SUCCESS; 5020 } 5021 } 5022 } 5023 5024 hmR0SvmSetPendingXcptUD(pVCpu); 5020 5025 return VINF_SUCCESS; 5021 5026 } … … 5222 5227 HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY(); 5223 5228 5224 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestUD);5225 5226 5229 PVM pVM = pVCpu->CTX_SUFF(pVM); 5227 5230 if ( pVM->hm.s.fTrapXcptUD … … 5231 5234 hmR0SvmSetPendingXcptUD(pVCpu); 5232 5235 5236 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestUD); 5233 5237 return VINF_SUCCESS; 5234 5238 }
Note:
See TracChangeset
for help on using the changeset viewer.