Changeset 105698 in vbox for trunk/src/VBox/VMM/VMMR3/EM.cpp
- Timestamp:
- Aug 15, 2024 11:33:49 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/EM.cpp
r103415 r105698 1057 1057 * @param pVM The cross context VM structure. 1058 1058 * @param pVCpu The cross context virtual CPU structure. 1059 * @param fWasHalted Set if we're comming out of a CPU HALT state. 1059 1060 * @param pfFFDone Where to store an indicator telling whether or not 1060 1061 * FFs were done before returning. 1061 1062 * 1062 1063 */ 1063 static VBOXSTRICTRC emR3RecompilerExecute(PVM pVM, PVMCPU pVCpu, bool *pfFFDone)1064 static VBOXSTRICTRC emR3RecompilerExecute(PVM pVM, PVMCPU pVCpu, bool fWasHalted, bool *pfFFDone) 1064 1065 { 1065 1066 STAM_REL_PROFILE_START(&pVCpu->em.s.StatREMTotal, a); … … 1098 1099 #ifdef VBOX_WITH_IEM_RECOMPILER 1099 1100 if (pVM->em.s.fIemRecompiled) 1100 rcStrict = IEMExecRecompiler(pVM, pVCpu );1101 rcStrict = IEMExecRecompiler(pVM, pVCpu, fWasHalted); 1101 1102 else 1102 1103 #endif … … 1190 1191 } 1191 1192 1193 #ifdef VBOX_WITH_IEM_RECOMPILER 1194 fWasHalted = false; 1195 #else 1196 RT_NOREF(fWasHalted); 1197 #endif 1192 1198 } /* The Inner Loop, recompiled execution mode version. */ 1193 1199 … … 2253 2259 case VINF_EM_RESUME: 2254 2260 Log2(("EMR3ExecuteVM: VINF_EM_RESUME: %d -> VINF_EM_RESCHEDULE\n", enmOldState)); 2255 /* Don't reschedule in the halted or wait for SIPI case. */2261 /* Don't reschedule in the halted or wait-for-SIPI cases. */ 2256 2262 if ( pVCpu->em.s.enmPrevState == EMSTATE_WAIT_SIPI 2257 2263 || pVCpu->em.s.enmPrevState == EMSTATE_HALTED) … … 2510 2516 */ 2511 2517 case EMSTATE_RECOMPILER: 2512 rc = VBOXSTRICTRC_TODO(emR3RecompilerExecute(pVM, pVCpu, &fFFDone));2518 rc = VBOXSTRICTRC_TODO(emR3RecompilerExecute(pVM, pVCpu, enmOldState == EMSTATE_HALTED, &fFFDone)); 2513 2519 Log2(("EMR3ExecuteVM: emR3RecompilerExecute -> %Rrc\n", rc)); 2514 2520 break;
Note:
See TracChangeset
for help on using the changeset viewer.