Changeset 104283 in vbox
- Timestamp:
- Apr 10, 2024 5:46:25 PM (10 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r104282 r104283 6195 6195 return off; 6196 6196 } 6197 6198 6199 /** 6200 * Emits code to update the TB exit reason statistics. 6201 */ 6202 DECL_INLINE_THROW(uint32_t) 6203 iemNativeEmitNativeTbExitStats(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint32_t const offVCpu) 6204 { 6205 uint8_t const idxStatsTmp1 = iemNativeRegAllocTmp(pReNative, &off); 6206 uint8_t const idxStatsTmp2 = iemNativeRegAllocTmp(pReNative, &off); 6207 off = iemNativeEmitIncStamCounterInVCpu(pReNative, off, idxStatsTmp1, idxStatsTmp2, offVCpu); 6208 iemNativeRegFreeTmp(pReNative, idxStatsTmp1); 6209 iemNativeRegFreeTmp(pReNative, idxStatsTmp2); 6210 6211 return off; 6212 } 6197 6213 #endif /* VBOX_WITH_STATISTICS */ 6198 6214 … … 6210 6226 6211 6227 #ifdef VBOX_WITH_STATISTICS 6212 uint8_t const idxStatsTmp1 = iemNativeRegAllocTmp(pReNative, &off); 6213 uint8_t const idxStatsTmp2 = iemNativeRegAllocTmp(pReNative, &off); 6214 off = iemNativeEmitIncStamCounterInVCpu(pReNative, off, idxStatsTmp1, idxStatsTmp2, 6215 RT_UOFFSETOF(VMCPUCC, iem.s.StatNativeTbExitReturnWithFlags)); 6216 iemNativeRegFreeTmp(pReNative, idxStatsTmp1); 6217 iemNativeRegFreeTmp(pReNative, idxStatsTmp2); 6228 off = iemNativeEmitNativeTbExitStats(pReNative, off, RT_UOFFSETOF(VMCPUCC, iem.s.StatNativeTbExitReturnWithFlags)); 6218 6229 #endif 6219 6230 … … 6238 6249 6239 6250 #ifdef VBOX_WITH_STATISTICS 6240 uint8_t const idxStatsTmp1 = iemNativeRegAllocTmp(pReNative, &off); 6241 uint8_t const idxStatsTmp2 = iemNativeRegAllocTmp(pReNative, &off); 6242 off = iemNativeEmitIncStamCounterInVCpu(pReNative, off, idxStatsTmp1, idxStatsTmp2, 6243 RT_UOFFSETOF(VMCPUCC, iem.s.StatNativeTbExitReturnBreak)); 6244 iemNativeRegFreeTmp(pReNative, idxStatsTmp1); 6245 iemNativeRegFreeTmp(pReNative, idxStatsTmp2); 6251 off = iemNativeEmitNativeTbExitStats(pReNative, off, RT_UOFFSETOF(VMCPUCC, iem.s.StatNativeTbExitReturnBreak)); 6246 6252 #endif 6247 6253 … … 9233 9239 9234 9240 #ifdef VBOX_WITH_STATISTICS 9235 { 9236 uint8_t const idxStatsTmp1 = iemNativeRegAllocTmp(pReNative, &off); 9237 uint8_t const idxStatsTmp2 = iemNativeRegAllocTmp(pReNative, &off); 9238 off = iemNativeEmitIncStamCounterInVCpu(pReNative, off, idxStatsTmp1, idxStatsTmp2, 9239 RT_UOFFSETOF(VMCPUCC, iem.s.StatNativeTbFinished)); 9240 iemNativeRegFreeTmp(pReNative, idxStatsTmp1); 9241 iemNativeRegFreeTmp(pReNative, idxStatsTmp2); 9242 } 9241 off = iemNativeEmitNativeTbExitStats(pReNative, off, RT_UOFFSETOF(VMCPUCC, iem.s.StatNativeTbFinished)); 9243 9242 #endif 9244 9243 … … 9291 9290 if (fTailLabels) 9292 9291 { 9293 #ifdef VBOX_WITH_STATISTICS9294 uint8_t const idxStatsTmp1 = iemNativeRegAllocTmp(pReNative, &off);9295 uint8_t const idxStatsTmp2 = iemNativeRegAllocTmp(pReNative, &off);9296 #endif9297 9298 9292 do 9299 9293 { … … 9309 9303 9310 9304 #ifdef VBOX_WITH_STATISTICS 9311 off = iemNativeEmitIncStamCounterInVCpu(pReNative, off, idxStatsTmp1, idxStatsTmp2, 9312 g_aSimpleTailLabels[enmLabel].offVCpuStats); 9305 off = iemNativeEmitNativeTbExitStats(pReNative, off, g_aSimpleTailLabels[enmLabel].offVCpuStats); 9313 9306 #endif 9314 9307 … … 9322 9315 9323 9316 } while (fTailLabels); 9324 9325 #ifdef VBOX_WITH_STATISTICS9326 iemNativeRegFreeTmp(pReNative, idxStatsTmp1);9327 iemNativeRegFreeTmp(pReNative, idxStatsTmp2);9328 #endif9329 9317 } 9330 9318 }
Note:
See TracChangeset
for help on using the changeset viewer.