Changeset 100222 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jun 20, 2023 2:40:48 AM (19 months ago)
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/EM.cpp
r100145 r100222 202 202 pVCpu->em.s.cHistoryProbeMaxInstructionsWithoutExit = cHistoryProbeMaxInstructionsWithoutExit; 203 203 } 204 205 #ifdef VBOX_WITH_IEM_RECOMPILER 206 /** @cfgm{/EM/IemRecompiled, bool, true} 207 * Whether IEM bulk execution is recompiled or interpreted. */ 208 rc = CFGMR3QueryBoolDef(pCfgEM, "IemRecompiled", &pVM->em.s.fIemRecompiled, true); 209 AssertLogRelRCReturn(rc, rc); 210 #endif 204 211 205 212 /* … … 2185 2192 case VINF_EM_RESCHEDULE_EXEC_ENGINE: 2186 2193 Assert(!pVM->em.s.fIemExecutesAll || pVCpu->em.s.enmState != EMSTATE_IEM); 2194 if (!pVM->em.s.fIemExecutesAll) 2195 { 2187 2196 #if !defined(VBOX_VMM_TARGET_ARMV8) 2188 if (VM_IS_HM_ENABLED(pVM)) 2189 { 2190 if (HMCanExecuteGuest(pVM, pVCpu, &pVCpu->cpum.GstCtx)) 2197 if (VM_IS_HM_ENABLED(pVM)) 2191 2198 { 2192 Log2(("EMR3ExecuteVM: VINF_EM_RESCHEDULE_EXEC_ENGINE: %d -> %d (EMSTATE_HM)\n", enmOldState, EMSTATE_HM)); 2193 pVCpu->em.s.enmState = EMSTATE_HM; 2194 break; 2199 if (HMCanExecuteGuest(pVM, pVCpu, &pVCpu->cpum.GstCtx)) 2200 { 2201 Log2(("EMR3ExecuteVM: VINF_EM_RESCHEDULE_EXEC_ENGINE: %d -> %d (EMSTATE_HM)\n", enmOldState, EMSTATE_HM)); 2202 pVCpu->em.s.enmState = EMSTATE_HM; 2203 break; 2204 } 2195 2205 } 2196 } 2197 else 2198 #endif 2199 if (VM_IS_NEM_ENABLED(pVM)) 2200 { 2201 if (NEMR3CanExecuteGuest(pVM, pVCpu)) 2206 else 2207 #endif 2208 if (VM_IS_NEM_ENABLED(pVM) && NEMR3CanExecuteGuest(pVM, pVCpu)) 2202 2209 { 2203 2210 Log2(("EMR3ExecuteVM: VINF_EM_RESCHEDULE_EXEC_ENGINE: %d -> %d (EMSTATE_NEM)\n", enmOldState, EMSTATE_NEM)); -
trunk/src/VBox/VMM/VMMR3/IEMR3.cpp
r98993 r100222 166 166 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.DataTlb.uTlbPhysRev, STAMTYPE_X64, STAMVISIBILITY_ALWAYS, STAMUNIT_NONE, 167 167 "Data TLB physical revision", "/IEM/CPU%u/DataTlb-PhysRev", idCpu); 168 169 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.cTbAllocs, STAMTYPE_U64, STAMVISIBILITY_ALWAYS, STAMUNIT_NONE, 170 "Translation block allocations", "/IEM/CPU%u/cTbAllocs", idCpu); 171 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.cTbFrees, STAMTYPE_U64, STAMVISIBILITY_ALWAYS, STAMUNIT_NONE, 172 "Translation block frees", "/IEM/CPU%u/cTbFrees", idCpu); 173 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.cTbLookupHits, STAMTYPE_U64, STAMVISIBILITY_ALWAYS, STAMUNIT_NONE, 174 "Translation block lookup hits", "/IEM/CPU%u/cTbLookupHits", idCpu); 175 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.cTbLookupMisses, STAMTYPE_U64, STAMVISIBILITY_ALWAYS, STAMUNIT_NONE, 176 "Translation block lookup misses", "/IEM/CPU%u/cTbLookupMisses", idCpu); 168 177 169 178 for (uint32_t i = 0; i < RT_ELEMENTS(pVCpu->iem.s.aStatXcpts); i++)
Note:
See TracChangeset
for help on using the changeset viewer.