Changeset 100752 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Jul 31, 2023 1:24:18 PM (19 months ago)
- svn:sync-xref-src-repo-rev:
- 158622
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllThrdFuncsBltIn.cpp
r100734 r100752 81 81 * Built-in function that calls a C-implemention function taking zero arguments. 82 82 */ 83 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_DeferToCImpl0, 84 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 83 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_DeferToCImpl0) 85 84 { 86 85 PFNIEMCIMPL0 const pfnCImpl = (PFNIEMCIMPL0)(uintptr_t)uParam0; … … 94 93 * Built-in function that compares the fExec mask against uParam0. 95 94 */ 96 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckMode, 97 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 95 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckMode) 98 96 { 99 97 uint32_t const fExpectedExec = (uint32_t)uParam0; … … 284 282 * raising a \#GP(0) if this isn't the case. 285 283 */ 286 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLim, 287 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 284 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLim) 288 285 { 289 286 uint32_t const cbInstr = (uint32_t)uParam0; … … 298 295 * that may have modified them. 299 296 */ 300 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLimAndOpcodes, 301 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 297 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLimAndOpcodes) 302 298 { 303 299 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 315 311 * modified them. 316 312 */ 317 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckOpcodes, 318 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 313 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckOpcodes) 319 314 { 320 315 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 337 332 * @see iemThreadedFunc_BltIn_CheckPcAndOpcodes 338 333 */ 339 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLimAndPcAndOpcodes, 340 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 334 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLimAndPcAndOpcodes) 341 335 { 342 336 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 359 353 * @see iemThreadedFunc_BltIn_CheckCsLimAndPcAndOpcodes 360 354 */ 361 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckPcAndOpcodes, 362 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 355 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckPcAndOpcodes) 363 356 { 364 357 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 383 376 * @see iemThreadedFunc_BltIn_CheckOpcodesLoadingTlb 384 377 */ 385 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLimAndOpcodesLoadingTlb, 386 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 378 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLimAndOpcodesLoadingTlb) 387 379 { 388 380 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 408 400 * @see iemThreadedFunc_BltIn_CheckCsLimAndOpcodesLoadingTlb 409 401 */ 410 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckOpcodesLoadingTlb, 411 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 402 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckOpcodesLoadingTlb) 412 403 { 413 404 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 438 429 * @see iemThreadedFunc_BltIn_CheckOpcodesAcrossPageLoadingTlb 439 430 */ 440 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLimAndOpcodesAcrossPageLoadingTlb, 441 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 431 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLimAndOpcodesAcrossPageLoadingTlb) 442 432 { 443 433 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 465 455 * @see iemThreadedFunc_BltIn_CheckCsLimAndOpcodesAcrossPageLoadingTlb 466 456 */ 467 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckOpcodesAcrossPageLoadingTlb, 468 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 457 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckOpcodesAcrossPageLoadingTlb) 469 458 { 470 459 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 489 478 * @see iemThreadedFunc_BltIn_CheckOpcodesOnNextPageLoadingTlb 490 479 */ 491 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLimAndOpcodesOnNextPageLoadingTlb, 492 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 480 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLimAndOpcodesOnNextPageLoadingTlb) 493 481 { 494 482 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 514 502 * @see iemThreadedFunc_BltIn_CheckCsLimAndOpcodesOnNextPageLoadingTlb 515 503 */ 516 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckOpcodesOnNextPageLoadingTlb, 517 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 504 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckOpcodesOnNextPageLoadingTlb) 518 505 { 519 506 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 536 523 * @see iemThreadedFunc_BltIn_CheckOpcodesOnNewPageLoadingTlb 537 524 */ 538 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckCsLimAndOpcodesOnNewPageLoadingTlb, 539 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 525 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckCsLimAndOpcodesOnNewPageLoadingTlb) 540 526 { 541 527 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; … … 557 543 * @see iemThreadedFunc_BltIn_CheckCsLimAndOpcodesOnNewPageLoadingTlb 558 544 */ 559 IEM_DECL_IMPL_DEF(VBOXSTRICTRC, iemThreadedFunc_BltIn_CheckOpcodesOnNewPageLoadingTlb, 560 (PVMCPU pVCpu, uint64_t uParam0, uint64_t uParam1, uint64_t uParam2)) 545 IEM_DECL_IEMTHREADEDFUNC_DEF(iemThreadedFunc_BltIn_CheckOpcodesOnNewPageLoadingTlb) 561 546 { 562 547 PCIEMTB const pTb = pVCpu->iem.s.pCurTbR3; -
trunk/src/VBox/VMM/VMMAll/IEMAllThrdPython.py
r100747 r100752 1421 1421 1422 1422 # Prototype the function table. 1423 sFnType = 'typedef IEM_DECL_IMPL_TYPE(VBOXSTRICTRC, FNIEMTHREADEDFUNC, (PVMCPU pVCpu';1424 for iParam in range(g_kcThreadedParams):1425 sFnType += ', uint64_t uParam' + str(iParam);1426 sFnType += '));'1427 1428 1423 asLines += [ 1429 sFnType,1430 'typedef FNIEMTHREADEDFUNC *PFNIEMTHREADEDFUNC;',1431 '',1432 1424 'extern const PFNIEMTHREADEDFUNC g_apfnIemThreadedFunctions[kIemThreadedFunc_End];', 1433 1425 '#if defined(IN_RING3) || defined(LOG_ENABLED)', … … 1456 1448 oOut.write('\n'.join(asLines)); 1457 1449 1458 # Prepare the fixed bits.1459 sParamList = '(PVMCPU pVCpu';1460 for iParam in range(g_kcThreadedParams):1461 sParamList += ', uint64_t uParam' + str(iParam);1462 sParamList += '))\n';1463 1464 1450 # 1465 1451 # Emit the function definitions. … … 1489 1475 ' (macro expansion)' if oMcBlock.iBeginLine == oMcBlock.iEndLine else '') 1490 1476 + ' */\n' 1491 + 'static IEM_DECL_IMPL_DEF(VBOXSTRICTRC, ' + oVariation.getFunctionName() + ',\n' 1492 + ' ' + sParamList 1477 + 'static IEM_DECL_IEMTHREADEDFUNC_DEF(' + oVariation.getFunctionName() + ')\n' 1493 1478 + '{\n'); 1494 1479 -
trunk/src/VBox/VMM/VMMAll/IEMAllThrdRecompiler.cpp
r100736 r100752 568 568 569 569 570 static PIEMTB iemThreadedTbLookup(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPc, uint32_t fExtraFlags) 570 static PIEMTB iemThreadedTbLookup(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPc, uint32_t fExtraFlags) IEM_NOEXCEPT_MAY_LONGJMP 571 571 { 572 572 uint32_t const fFlags = (pVCpu->iem.s.fExec & IEMTB_F_IEM_F_MASK) | fExtraFlags | IEMTB_F_STATE_READY; … … 1194 1194 * maybe IEMTB_F_RIP_CHECKS. 1195 1195 */ 1196 static VBOXSTRICTRC iemThreadedCompile(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPc, uint32_t fExtraFlags) 1196 static VBOXSTRICTRC iemThreadedCompile(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhysPc, uint32_t fExtraFlags) IEM_NOEXCEPT_MAY_LONGJMP 1197 1197 { 1198 1198 /* … … 1289 1289 * @param pTb The translation block to execute. 1290 1290 */ 1291 static VBOXSTRICTRC iemThreadedTbExec(PVMCPUCC pVCpu, PIEMTB pTb) 1291 static VBOXSTRICTRC iemThreadedTbExec(PVMCPUCC pVCpu, PIEMTB pTb) IEM_NOEXCEPT_MAY_LONGJMP 1292 1292 { 1293 1293 /* Check the opcodes in the first page before starting execution. */
Note:
See TracChangeset
for help on using the changeset viewer.